Member 12926744 Ответов: 2

Лучший способ прочитать поток файлов excel атомарно с помощью приложения windows


Всем привет,
В основном мне нужно решение следующей проблемы. У меня есть папка с группой файлов excel, имеющих 500-600 строк для каждого файла .Мне нужно автоматически читать эти файлы excel один за другим и сбрасывать записи в некоторые таблицы базы данных. Перед вставкой записей проверяются некоторые условия .

Что я уже пробовал:

Форма имеет две кнопки start и stop, а также таймер с интервалом 500. Когда таймер удален, процесс немного ускоряется .Но проблема в том, что я не могу остановить процесс между ними с помощью кнопки "стоп". Есть ли другой подходящий способ обработать его быстрее?

2 Ответов

Рейтинг:
1

Patrice T

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь уязвимости под названием "SQL injection", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа рухнет. Если пользователь вводит имя типа "Брайан О'Коннер", это может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция-Википедия[^]
SQL-инъекция[^]


Member 12926744

Большое вам спасибо за информацию .Поскольку я новичок в C#, я ничего об этом не знаю.

Рейтинг:
0

OriginalGriff

Это очень,очень плохой код. Никогда не объединяйте строки для построения SQL-команды. Это оставляет вас широко открытыми для случайной или преднамеренной атаки SQL-инъекции, которая может уничтожить всю вашу базу данных. Вместо этого используйте параметризованные запросы.

Когда вы исправите это - хотя и все ваше приложение-используйте класс секундомера, чтобы определить, какие части метода используют время te, и сосредоточьте свое внимание на этих частях.
Не зная этого, мы так же не можем помочь, как и в прошлый раз, когда вы задали этот вопрос!


Member 12926744

Большое вам спасибо за информацию .Поскольку я новичок в C#, я ничего об этом не знаю.