1

次のコードを実行し、すべての SqlDataReaders を正しくクリーンアップします。

using (IDataReader reader = SqlHelper.GetDataReader(sql.ToString())) {
    if (reader.Read()) {
        result = reader.IsDBNull(0) ? string.Empty : reader[0].ToString();
    }
}

コードに並行性/割り当て解除の問題があり、それらを突き止めようとしています。

4

1 に答える 1

2

Dispose()IDataReaderステートメントの終わりがusingスコープ外になると、自動的に呼び出されます。また、リーダーが接続を破棄したときにリーダーが接続を破棄できるように、リーダーが作成されていることを確認してCommandBehavior.CloseConnectionください。

しかし、接続に関連する他のコードは表示されません。クラシッククラスを使用している場合SqlHelper、それが問題の原因である可能性があります...

于 2012-05-23T02:25:07.903 に答える