3

您好我正在尝试从一个方法返回 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;
}
4

1 回答 1

6

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

于 2012-02-21T16:42:25.057 回答