私が継承した典型的なクエリ実行パターンは次のようになります。
using (IDataReader r = query.ExecuteReader())
{
while (r.Read())
{
// etc.
}
}
ブロックが終了query.Connection
した後、開いたままになりますか?using
私が継承した典型的なクエリ実行パターンは次のようになります。
using (IDataReader r = query.ExecuteReader())
{
while (r.Read())
{
// etc.
}
}
ブロックが終了query.Connection
した後、開いたままになりますか?using
ExecuteReader(CommandBehavior.CloseConnection)
これは、データリーダーがそのメソッドを呼び出したときに接続を閉じます(これは、ブロックの使用を通じてメソッドが呼び出されclose()
たときに発生します。dispose()
using
理想的には、接続を閉じるだけでなく、リソースを解放するためにも、オブジェクトでusing
ブロックを使用する (またはブロック内で手動でSqlConnection
呼び出す) ことをお勧めします。dispose()
finally
いいえ; 接続を破棄するまで、接続は閉じられません。
ただし、 を渡すCommandBehavior.CloseConnection
と、接続が閉じられます。