Sdílet prostřednictvím


SqlConnection.Close Metoda

Definice

Ukončí připojení k databázi. Toto je upřednostňovaná metoda ukončení jakéhokoli otevřeného připojení.

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

Implementuje

Výjimky

Chyba na úrovni připojení, ke které došlo při otevírání připojení.

Příklady

Následující příklad vytvoří objekt SqlConnection, otevře se a zobrazí některé jeho vlastnosti. Připojení se automaticky ukončí na konci using bloku.

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

Poznámky

Metoda Close vrátí zpět všechny čekající transakce. Pak uvolní připojení k fondu připojení nebo ukončí připojení, pokud je sdružování připojení zakázané.

Poznámka

Čekající transakce se spustily pomocí jazyka Transact-SQL nebo BeginTransaction se automaticky vrátí zpět při resetování připojení, pokud je povolené sdružování připojení. Pokud je sdružování připojení vypnuté, transakce se po SqlConnection.Close zavolání vrátí zpět. Transakce zahájené prostřednictvím System.Transactions jsou řízeny prostřednictvím System.Transactions infrastruktury a nejsou ovlivněny SqlConnection.Closenástrojem .

Aplikace může volat Close více než jednou. Negeneruje se žádná výjimka.

Pokud dojde k SqlConnection výpadku rozsahu, nezavře se. Proto musíte připojení explicitně zavřít voláním Close nebo Dispose. Close a Dispose jsou funkčně ekvivalentní. Pokud je hodnota Pooling sdružování připojení nastavená na true nebo yes, vrátí se podkladové připojení zpět do fondu připojení. Pokud je naopak Pooling nastavená hodnota false nebo no, základní připojení k serveru se ukončí.

Poznámka

Události přihlášení a odhlášení nebudou vyvolány na serveru, pokud je připojení načteno z fondu připojení nebo vráceno do fondu připojení, protože připojení není ve skutečnosti ukončeno, jakmile se vrátí do fondu připojení. Další informace najdete v tématu SQL Server sdružování připojení (ADO.NET).

Upozornění

Nevolejte Close ani Dispose na Připojení, DataReader ani žádný jiný spravovaný objekt v Finalize metodě vaší třídy. V finalizátoru byste měli uvolnit pouze nespravované prostředky, které vaše třída vlastní přímo. Pokud vaše třída nevlastní žádné nespravované prostředky, nezahrnujte do definice třídy metodu Finalize . Další informace najdete v tématu Uvolňování paměti.

Platí pro

Viz také