SqlConnection.Close 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
關閉與資料庫的連接。 這是關閉任何開啟連接的慣用方法。
public:
override void Close();
public:
virtual void Close();
public override void Close ();
public void Close ();
override this.Close : unit -> unit
abstract member Close : unit -> unit
override this.Close : unit -> unit
Public Overrides Sub Close ()
Public Sub Close ()
實作
例外狀況
開啟連接時發生的連接層級錯誤。
範例
下列範例會 SqlConnection建立 ,並開啟它,並顯示其部分屬性。 聯機會在 區塊結尾 using
自動關閉。
private static void OpenSqlConnection(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
Console.WriteLine("State: {0}", connection.State);
}
}
Private Sub OpenSqlConnection(ByVal connectionString As String)
Using connection As New SqlConnection(connectionString)
connection.Open()
Console.WriteLine("ServerVersion: {0}", connection.ServerVersion)
Console.WriteLine("State: {0}", connection.State)
End Using
End Sub
備註
方法 Close 會回復任何擱置的交易。 然後,它會釋放連線集區的連線,或停用連線共用時關閉連線。
注意
使用 Transact-SQL 啟動的擱置交易,或在 BeginTransaction 啟用連線共用時自動回復連線。 如果連線共用關閉,則會在呼叫 之後 SqlConnection.Close
回復交易。 從 開始 System.Transactions 的交易會透過 System.Transactions
基礎結構來控制,而且不會受到 SqlConnection.Close
影響。
應用程式可以呼叫 Close 一次以上。 不會產生例外狀況。
SqlConnection如果超出範圍,則不會關閉。 因此,您必須呼叫 Close
或 Dispose
來明確關閉連線。
Close
和 Dispose
在功能上相等。 如果連線共享值 Pooling
設定 true
為 或 yes
,基礎連接會傳回至連接集區。 另一方面,如果 Pooling
設定為 false
或 no
,則會關閉與伺服器的基礎連線。
注意
從連接集區中擷取連接或將連接傳回連接集區時,系統不會在伺服器上引發登入和登出事件,因為當連接傳回連接集區時,連接實際上並未關閉。 如需詳細資訊,請參閱 SQL Server 連線共用 (ADO.NET) \(機器翻譯\)。
警告
請勿在 Connection、DataReader 或任何其他 Managed 物件的 方法上Finalize
呼叫 Close
或 Dispose
。 在完成項中,您應該只釋放類別直接擁有的 Unmanaged 資源。 如果類別未擁有任何 Unmanaged 資源,請不要在類別定義中包含 Finalize
方法。 如需詳細資訊,請參閱記憶體回收。
適用於
另請參閱
- SQL Server 連接共用 (ADO.NET)
- 連接到 ADO.NET 中的數據源
- SQL Server and ADO.NET (SQL Server 和 ADO.NET)
- ADO.NET 概觀 \(部分機器翻譯\)