SqlConnection.Close Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Schließt die Verbindung mit der Datenbank. Dies ist die bevorzugte Methode zum Schließen offener Verbindungen.
public:
override void Close();
public override void Close ();
override this.Close : unit -> unit
Public Overrides Sub Close ()
Ausnahmen
Der Fehler auf Verbindungsebene, der beim Öffnen der Verbindung aufgetreten ist.
Beispiele
Im folgenden Beispiel wird eine SqlConnectionerstellt, die geöffnet wird und einige seiner Eigenschaften anzeigt. Die Verbindung wird am Ende des using
Blocks automatisch geschlossen.
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;";
}
}
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 wurden mithilfe von Transact-SQL gestartet oder BeginTransaction werden automatisch zurückgesetzt, wenn die Verbindung zurückgesetzt wird, wenn das Verbindungspooling aktiviert ist. Wenn das Verbindungspooling deaktiviert ist, wird ein Rollback für die Transaktion 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 mehrere Aufrufe Close 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 Dispose
aufrufenClose
. Close
und Dispose
funktional gleichwertig sind. Wenn der Wert Pooling
für das Verbindungspooling auf true
oder yes
festgelegt ist, wird die zugrunde liegende Verbindung an den Verbindungspool zurückgegeben. Wenn hingegen auf false
oder no
festgelegt 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 keine Dispose
Connection, einen DataReader oder ein anderes verwaltetes Objekt in der Finalize
-Methode Ihrer -Klasse auf oder 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.