Ну сразу бросается в глаза, что вы не освобождаете стрим, этот как минимум потенциальная ошибка утечки памяти.
StreamReader openfile = new StreamReader(openFileDialog.FileName);
я бы заменил на
using (var openfile = new StreamReader(openFileDialog.FileName))
дальше, вы открыли файл и выполняете операции над ним в вечном цикле - это тоже потенциально опасно утечкой памяти, по мне лучше открыть файл, что-то с ним сделать и закрыть, то есть сделайте OpenFileDialog над объявлением, а создание стрима уже внутри.
SqlConnection и SqlCommand если не ошибаюсь тоже IDisposable их тоже следует обернуть в using, как и StreamReader - Ошибка с утечкой памяти скорей всего здесь.
И еще момент, я бы не стал делать цикл while(true), обычно я делаю private переменную _needStop и цикл while(!_needStop). Это для того, чтобы если понадобится, написать метод Stop()
Upd: немного посмотрел код ( используйте лучше FileStream вместо с StreamReader. Вот даже статью нашел
metanit.com/sharp/tutorial/5.4.php FileStream вы хотя бы будете знать что там у вас с кодировками, а то всякое бывает.) хотя я в этом и не так уж уверен и со мной можно поспорить.