ExecuteScalarは接続を自動的に閉じますか?
3535 次
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 に答える