Freigeben über


SqlConnection.Close Methode

Definition

Schließt die Verbindung mit der Datenbank. Dies ist die bevorzugte Methode zum Schließen offener Verbindungen.

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 ()

Implementiert

Ausnahmen

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

Beispiele

Im folgenden Beispiel wird ein SqlConnection-Element erstellt, das geöffnet wird, und einige seiner Eigenschaften werden angezeigt. Die Verbindung wird automatisch am Ende des using Blocks 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 führt ein Rollback für alle ausstehenden Transaktionen aus. Anschließend wird die Verbindung mit dem Verbindungspool freigegeben oder die Verbindung geschlossen, wenn das Verbindungspooling deaktiviert ist.

Hinweis

Ausstehende Transaktionen, die mithilfe von Transact-SQL gestartet wurden, oder BeginTransaction es wird automatisch ein Rollback ausgeführt, wenn die Verbindung zurückgesetzt wird, wenn das Verbindungspooling aktiviert ist. Wenn das Verbindungspooling deaktiviert ist, wird für die Transaktion ein Rollback ausgeführt, nachdem SqlConnection.Close aufgerufen wurde. Transaktionen, die über System.Transactions gestartet werden, werden über die System.Transactions Infrastruktur gesteuert und sind von nicht betroffen SqlConnection.Close.

Eine Anwendung kann Close mehrere Aufrufe ausführen. Es wird keine Ausnahme generiert.

Wenn der SqlConnection außerhalb des Gültigkeitsbereichs liegt, wird es nicht geschlossen. Daher müssen Sie die Verbindung explizit schließen, indem Sie oder DisposeaufrufenClose. Close und Dispose sind funktional gleichwertig. Wenn der Wert Pooling für verbindungspooling auf true oder yesfestgelegt ist, wird die zugrunde liegende Verbindung an den Verbindungspool zurückgegeben. Wenn dagegen auf false oder nofestgelegt ist, Pooling wird die zugrunde liegende Verbindung mit dem Server geschlossen.

Hinweis

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-Verbindungspooling (ADO.NET).

Achtung

Rufen Close Sie oder Dispose nicht für eine 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 ihrer Klasse direkt gehören. 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