SqlConnection.Close Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.