SqlConnection
、SqlCommand
およびSqlDataReader
すべてがインターフェイスを実装しIDisposable
ます。常にブロックにラップIDisposables
するベスト プラクティスについて読みました。using
したがって、データをクエリするための私の一般的なシナリオは次のようになります (より大きなコンテキストでは、もちろん linq2sql のようなマッピング ツールが適していますが、ここではこのアプローチを使用したいと仮定しましょう):
using (SqlConnection cn = new SqlConnection("myConnectionstring"))
{
using (SqlCommand cm = new SqlCommand("myQuery", cn))
{
// maybe add sql parameters
using (SqlDataReader reader = cm.ExecuteReader())
{
// read values from reader object
return myReadValues;
}
}
}
これは正しい方法ですか、それともやり過ぎと見なすことができますか? このレベルの入れ子ブロックについては少し確信が持てませんusing
が、もちろん正しい方法でやりたいと思っています。ありがとう!