Ошибка DbDataReader: неверная попытка вызова Read, когда читатель закрыт
Привет я пытаюсь вернуть DataReader из метода, но он возвращает закрытый объект DbDataReader там. Любая идея, чтобы разобраться в этом вопросе. Я открыт для любых предложений по улучшению кода.
Спасибо
ОБНОВЛЕНИЕ Я не хочу оставлять соединение с базой данных открытым. Есть ли способ вернуть открытый DataReader после закрытия соединения.
internal DbDataReader ExecuteReader(SqlCommand command, CommandBehavior behavior, string connectionString)
{
DbDataReader dataReader = null;
try
{
SqlConnection connection = GetConnection(connectionString);
Open(connection);
command.Connection = connection;
command.CommandTimeout = 60;
dataReader = command.ExecuteReader(behavior);
Close(connection);
}
catch
{
}
return dataReader;
}
1 ответ
Решение
Он закрыт, потому что вы закрыли соединение с базой данных. Он не может читать данные из закрытого SqlConnection. Если вы хотите повторно использовать соединение, вы можете передать открытое соединение этому методу и закрыть соединение после того, как вы использовали данные из DbDataReader.