共用方式為


SqlConnection.Close 方法

定義

關閉與資料庫的連接。 這是關閉任何開啟連接的慣用方法。

public:
 override void Close();
public override void Close ();
override this.Close : unit -> unit
Public Overrides Sub Close ()

例外狀況

開啟連接時發生的連接層級錯誤。

範例

下列範例會 SqlConnection 建立 ,並開啟它,並顯示其部分屬性。 連線會在 區塊結尾 using 自動關閉。

using Microsoft.Data.SqlClient;

class Program1
{
    static void Main()
    {
        string s = GetConnectionString();

        OpenSqlConnection(s);
        Console.ReadLine();
    }

    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);
        }
    }

    static private string GetConnectionString()
    {
        // To avoid storing the connection string in your code, 
        // you can retrieve it from a configuration file, using the 
        // System.Configuration.ConfigurationSettings.AppSettings property 
        return "Data Source=(local);Initial Catalog=AdventureWorks;"
            + "Integrated Security=SSPI;";
    }
}

備註

方法 Close 會回復任何擱置的交易。 然後,它會釋放連線集區的連線,或停用連線共用時關閉連線。

注意

使用 Transact-SQL 啟動的擱置交易,或在 BeginTransaction 啟用連線共用時自動回復連線。 如果連線共用關閉,則會在呼叫 之後 SqlConnection.Close 回復交易。 從 開始 System.Transactions 的交易會透過 System.Transactions 基礎結構來控制,而且不會受到 SqlConnection.Close 影響。

應用程式可以呼叫 Close 一次以上。 不會產生例外狀況。

SqlConnection如果 超出範圍,則不會關閉。 因此,您必須呼叫 CloseDispose 來明確關閉連線。 CloseDispose 在功能上相等。 如果連線共用值 Pooling 設定 true 為 或 yes ,基礎連接會傳回至連接集區。 另一方面,如果 Pooling 設定為 falseno ,則會關閉與伺服器的基礎連線。

注意

從連接集區中擷取連接或將連接傳回連接集區時,系統不會在伺服器上引發登入和登出事件,因為當連接傳回連接集區時,連接實際上並未關閉。 如需詳細資訊,請參閱 SQL Server 連線共用 (ADO.NET) \(機器翻譯\)。

注意

請勿在 Connection、DataReader 或任何其他 Managed 物件的 方法上 Finalize 呼叫 CloseDispose 。 在完成項中,您應該只釋放類別直接擁有的 Unmanaged 資源。 如果類別未擁有任何 Unmanaged 資源,請不要在類別定義中包含 Finalize 方法。 如需詳細資訊,請參閱記憶體回收

適用於