私はC#プロジェクトに取り組んでいます。私のプログラムはSQL Serverで動作します。
以下のアプローチのうち、正しいものはどれですか?
プログラムを開始するときに SQL Server 接続を開き、プログラムを閉じると SQL 接続も閉じます。
SQL を使用する必要がある場合は SQL Server 接続を開き、作業が完了したら閉じます。
私はC#プロジェクトに取り組んでいます。私のプログラムはSQL Serverで動作します。
以下のアプローチのうち、正しいものはどれですか?
プログラムを開始するときに SQL Server 接続を開き、プログラムを閉じると SQL 接続も閉じます。
SQL を使用する必要がある場合は SQL Server 接続を開き、作業が完了したら閉じます。
あなたは私たちに教えてください。どちらも正しいです。1 つは悪い習慣で、もう 1 つは通常の状況での良い習慣ですが、技術的にはどちらも機能します。
コンテキストに依存します。通常は 2 つだけを使用します。これには多くの利点があります。たとえば、サーバーがダウンしたときや数秒間リセットされたときに接続を処理する必要がないなどです。これはまた、簡単にマルチスレッド化して複数の接続を使用できることを意味します。これは、後ではなく前に来る瞬間であり、ほとんどの未熟な開発者が、複雑になるにつれて別のことをしたいと思う瞬間です。
これは完全に AC# の質問ではありません。これは、過去 20 年間の一般的な「データベースの使用方法」であり、これまでに使用したすべてのデータベースをすべての言語で説明しています。
どちらも正しいですが、ベストプラクティスは使用することです
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
//Do something
}
これは、ブロック終了を使用した後に Dispose を呼び出します。接続と接続プールについて読むhttp://msdn.microsoft.com/en-us/library/8xx3tyca(v=vs.80).aspx