C# 中的連線池是什麼,如何實現?


這些用於匯入名稱空間(或建立名稱空間或型別的別名)。

這些位於檔案的頂部,在任何宣告之前。

using System;
using System.IO;
using WinForms = global::System.Windows.Forms;
using WinButton = WinForms::Button;


using 語句確保即使在建立物件並呼叫方法、屬性等時發生異常,也會呼叫 Dispose()。Dispose() 是 IDisposable 介面中存在的一個方法,有助於實現自定義垃圾回收。換句話說,如果我們正在執行一些資料庫操作(插入、更新、刪除),但不知何故發生了異常,那麼在這裡 using 語句會自動關閉連線。不需要顯式呼叫 connection Close() 方法。

另一個重要因素是它有助於連線池。.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 語句,using 語句將自動呼叫 conn.Close()

(使用 (SqlConnection conn = new SqlConnection(connString)) 以及 SqlDataReader 物件相同。並且如果發生任何異常,它將自動關閉連線。

更新於: 2020-11-25

736 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.