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 override void Close ();
override this.Close : unit -> unit
Public Overrides Sub Close ()

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 ho a zobrazí některé jeho vlastnosti. Připojení se automaticky ukončí na konci using bloku.

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

Poznámky

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

Poznámka

Nevyřízené transakce byly zahájeny pomocí jazyka Transact-SQL nebo BeginTransaction jsou automaticky vráceny zpět při resetování připojení, pokud je povoleno 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 nástrojem SqlConnection.Close.

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

Pokud přejde mimo SqlConnection rozsah, nezavře se. Proto musíte připojení explicitně ukončit 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, základní připojení se vrátí 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í se na serveru nevyvolá, když se připojení načte z fondu připojení nebo se do něj vrátí, protože připojení se ve skutečnosti při vrácení do fondu připojení neukončí. Další informace najdete v tématu SQL Server sdružování připojení (ADO.NET).

Upozornění

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

Platí pro