SqlConnection
、SqlCommand
およびSqlDataReader
はすべてIDisposable
インターフェイスを実装しています。私は常にIDisposables
をusing
ブロックにラップするベストプラクティスについて読んでいます。SqlConnection SqlCommand SqlDataReader IDisposable
ので、データを照会するための私の一般的なシナリオは、(当然の大きな文脈で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
ブロックを入れ子にしてこのレベルについて少しは確信していますが、もちろん私は正しい方法でそれをやりたいのです。 ありがとう!
あなたの答え、特に 'SqlCommands'の処理に関する詳細については、ありがとう - ちょうど私が探していた情報! –
@ Chips_100、私は助けになることができてうれしいです! –
ちょうどFYIの "using"はtry - > finallyブロックの構文的な砂糖で、最終的にDisposeを呼び出します。しかし、そのようにはしないでください - usingキーワードを使用してください。 :) – Haney