DbDataReader错误:读取器关闭时无效尝试调用Read

时间:2012-02-21 16:37:48

标签: c# c#-4.0 sqldatareader dbdatareader

您好我试图从方法返回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 个答案:

答案 0 :(得分:6)

因为您关闭了数据库连接而关闭了它。它无法从已关闭的SqlConnection中读取数据。如果要重用连接,可以将OPEN连接传递给方法,并在从DbDataReader使用数据后关闭连接。