您好我试图从方法返回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;
}
答案 0 :(得分:6)
因为您关闭了数据库连接而关闭了它。它无法从已关闭的SqlConnection中读取数据。如果要重用连接,可以将OPEN连接传递给方法,并在从DbDataReader使用数据后关闭连接。