2013-06-22 4 views
1

У меня есть следующий код:C# - Неверная попытка вызвать Read, когда читатель закрыт

Для той или иной причине, он генерирует исключение «недопустимая попытка вызвать Read читателя закрыт». Может ли кто-нибудь помочь мне решить эту проблему? Я понятия не имею, почему это генерирует это исключение, поскольку я закрываю соединение после прочтения содержимого читателя.

Он генерирует исключение на этой линии:

    while (rdr.Read()) 
+0

По той или иной причине эта строка 'results.Load (rdr);' вызывает проблемы. –

+0

Загружает результаты в таблицу данных. Я объявила таблицу данных следующим образом: DataTable results = new DataTable(); – Matthew

+0

DataTable был объявлен задолго до того, как он загрузится с результатами запроса. Он не изменяется каким-либо другим образом, прежде чем загружаться с результатами запроса. – Matthew

ответ

2

я решил.

Проблема заключалась в том, что я загружал данные в блок чтения. Я изменил код следующим образом, и теперь он работает.

if (rdr.HasRows == true) 
{ 
    results.Load(rdr); 
} 
+3

Вы можете в дальнейшем сократить это: 'if (rdr.HasRows)' –

+0

Он мог бы дополнительно укоротить его, чтобы полностью удалить проверку HasRows. Это, вероятно, не нужно. –

Смежные вопросы