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 に答える