これらは、名前空間をインポートする (または名前空間または型のエイリアスを作成する) ために使用されます。
これらは、ファイルの先頭、宣言の前に配置されます。
using System; using System.IO; using WinForms = global::System.Windows.Forms; using WinButton = WinForms::Button;
using ステートメントにより、オブジェクトの作成中、メソッドやプロパティの呼び出し中に例外が発生した場合でも、Dispose() が確実に呼び出されます。 Dispose() は、カスタム ガベージ コレクションの実装に役立つ IDisposable インターフェイスで提供されるメソッドです。つまり、データベース操作 (挿入、更新、削除) を実行中に何らかの理由で例外が発生した場合、ここでの using ステートメントは自動的に接続を閉じます。ここで接続 Close() メソッドを明示的に呼び出す必要はありません。
もう 1 つの重要な要素は、接続プーリングに役立つことです。 .NET の接続プーリングにより、データベース接続を何度も閉じる必要がなくなります。今後の使用 (次のデータベース呼び出し) に備えて、接続オブジェクトをプールに送信します。次回データベース接続がアプリケーションから呼び出されるとき、接続プールはプール内で使用可能なオブジェクトを取得します。したがって、アプリケーションのパフォーマンスの向上に役立ちます。したがって、using ステートメントを使用すると、コントローラーは Close() メソッドと Dispose() メソッドを明示的に呼び出すことなく、オブジェクトを接続プールに自動的に送信します。
using (Stream input = File.OpenRead(filename)) { ... }
string connString = "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;"; using (SqlConnection conn = new SqlConnection(connString)) { SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "SELECT CustomerId, CompanyName FROM Customers"; conn.Open(); using (SqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) Console.WriteLine("{0}\t{1}", dr.GetString(0), dr.GetString(1)); } }
上記のコードでは接続を閉じていません。接続は自動的に閉じられます。 using ステートメントは、SqlDataReader オブジェクトに対しても conn.Close()
(using (SqlConnection conn = new SqlConnection(connString))) を自動的に呼び出します。また、接続があれば自動的に閉じられます。例外が発生します。
以上がC# の接続プーリングとは何ですか?また、それを実装する方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。