SqlConnection.Close Methode

Definition

Schließt die Verbindung mit der Datenbank. Dies ist die bevorzugte Methode zum Schließen einer geöffneten Verbindung.

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

Implementiert

Ausnahmen

Fehler auf Verbindungsebene, der beim Öffnen der Verbindung aufgetreten ist.

Beispiele

Im folgenden Beispiel wird ein SqlConnection, öffnet es, zeigt einige seiner Eigenschaften an. Die Verbindung wird am Ende des using Blocks automatisch geschlossen.

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

Hinweise

Die Close Methode setzt alle ausstehenden Transaktionen zurück. Anschließend wird die Verbindung mit dem Verbindungspool freigegeben oder die Verbindung geschlossen, wenn die Verbindungspooling deaktiviert ist.

Note

Ausstehende Transaktionen, die mit der Verwendung von Transact-SQL oder BeginTransaction gestartet wurden, werden automatisch zurückgesetzt, wenn die Verbindung zurückgesetzt wird, wenn verbindungspooling aktiviert ist. Wenn die Verbindungspooling deaktiviert ist, wird die Transaktion zurückgesetzt, nachdem SqlConnection.Close sie aufgerufen wurde. Transaktionen, die über System.Transactions die Infrastruktur gestartet werden, werden durch die System.Transactions Infrastruktur gesteuert und sind nicht betroffen.SqlConnection.Close

Eine Anwendung kann mehrere Mal aufrufen Close . Es wird keine Ausnahme generiert.

Wenn der SqlConnection Bereich nicht mehr vorhanden ist, wird er nicht geschlossen. Daher müssen Sie die Verbindung explizit durch Aufrufen oder Close.Dispose Close und Dispose sind funktional gleichwertig. Wenn der Wert für den Verbindungspooling Pooling auf true oder yesfestgelegt ist, wird die zugrunde liegende Verbindung zurück an den Verbindungspool zurückgegeben. Auf der anderen Seite wird die zugrunde liegende Verbindung mit dem Server geschlossen, wenn Pooling sie auf oder nodiese festgelegt false ist.

Note

Wenn eine Verbindung aus dem Verbindungspool abgerufen oder an diesen zurückgegeben wird, werden keine Anmelde- und Abmeldeereignisse auf dem Server ausgelöst, da die Verbindung bei der Rückgabe an den Verbindungspool nicht geschlossen wird. Weitere Informationen finden Sie unter SQL Server Connection Pooling (ADO.NET).

Vorsicht

Rufen CloseDispose Sie keine Connection, einen DataReader oder ein anderes verwaltetes Objekt in der Finalize Methode Ihrer Klasse auf. In einem Finalizer sollten Sie nur nicht verwaltete Ressourcen freigeben, die Ihre Klasse direkt besitzt. Wenn die Klasse keine nicht verwalteten Ressourcen besitzt, definieren Sie in der Klasse keine Finalize-Methode. Weitere Informationen finden Sie unter Garbage Collection.

Gilt für:

Weitere Informationen