SqlConnection.Close Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Chiude la connessione al database. È il metodo preferito di chiusura di una connessione aperta.
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 ()
Implementazioni
Eccezioni
Errore a livello di connessione che si è verificato durante l'apertura della stessa.
Esempio
L'esempio seguente crea un SqlConnectionoggetto , lo apre, visualizza alcune delle relative proprietà. La connessione viene chiusa automaticamente alla fine del using
blocco.
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
Commenti
Il metodo esegue il Close rollback di tutte le transazioni in sospeso. Rilascia quindi la connessione al pool di connessioni o chiude la connessione se il pool di connessioni è disabilitato.
Nota
Le transazioni in sospeso avviate con Transact-SQL o BeginTransaction vengono eseguito automaticamente il rollback quando la connessione viene reimpostata se il pool di connessioni è abilitato. Se il pool di connessioni è disattivato, la transazione viene eseguito il rollback dopo SqlConnection.Close
la chiamata. Le transazioni avviate tramite System.Transactions l'infrastruttura System.Transactions
sono controllate e non sono interessate da SqlConnection.Close
.
Un'applicazione può chiamare Close più di una volta. Nessuna eccezione viene generata.
Se l'ambito esce dall'ambito SqlConnection , non verrà chiuso. Pertanto, è necessario chiudere in modo esplicito la connessione chiamando Close
o Dispose
.
Close
e Dispose
sono equivalenti a livello funzionale. Se il valore Pooling
del pool di connessioni è impostato su true
o yes
, la connessione sottostante viene restituita al pool di connessioni. D'altra parte, se Pooling
è impostato su false
o no
, la connessione sottostante al server viene chiusa.
Nota
Nel server non vengono generati eventi di accesso e di disconnessione quando una connessione viene recuperata dal o restituita al pool di connessioni, in quanto la connessione non viene effettivamente chiusa quando viene restituita al pool di connessioni. Per altre informazioni, vedere Pool di connessioni SQL Server (ADO.NET).
Attenzione
Non chiamare Close
o Dispose
in una connessione, un DataReader o qualsiasi altro oggetto gestito nel Finalize
metodo della classe. In un finalizzatore, è consigliabile rilasciare direttamente le risorse non gestite che la classe possiede direttamente. Se nella classe non sono presenti risorse non gestite, non includere un metodo Finalize
nella relativa definizione della classe. Per altre informazioni, vedere Garbage Collection.