2

ExecuteScalarは接続を自動的に閉じますか?

4

3 に答える 3

6

いいえ、ExecuteScalar() を使用する場合は、明示的に接続を開いたり閉じたりする必要があります。

于 2010-07-12T14:55:01.400 に答える
5

拡張メソッドを使用してオーバーロードを作成することもできますが、それが良いアイデアかどうかはわかりません。

public static object ExecuteScalar(this IDbCommand Command, bool CloseConnetion)
{

    (if Command == null)
        throw new NullReferenceException();

    object obj = null;

    try
    {
      obj = Command.ExecuteScalar();        
    }
    finally
    {
      if(CloseConnection && Command.Connection.State != ConnectionState.Closed)
        Command.Connection.Close();    
    }

    return obj;
}
于 2010-07-12T15:11:57.490 に答える
3

場合によります。接続を閉じる
実装を書くことができます。 しかし、私が知る限り、提供された実装は接続を閉じません。IDbCommand

于 2010-07-12T14:51:10.950 に答える