私が継承した典型的なクエリ実行パターンは次のようになります。
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と、接続が閉じられます。