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. Questo è il metodo preferito per chiudere qualsiasi connessione aperta.
public:
virtual void Close();
public:
override void Close();
public void Close();
public override void Close();
abstract member Close : unit -> unit
override this.Close : unit -> unit
override this.Close : unit -> unit
Public Sub Close ()
Public Overrides Sub Close ()
Implementazioni
Eccezioni
Errore a livello di connessione che si è verificato durante l'apertura della connessione.
Esempio
Nell'esempio seguente viene creato un SqlConnectionoggetto , che viene aperto, vengono visualizzate 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.
Note
Le transazioni in sospeso avviate con Transact-SQL o BeginTransaction vengono automaticamente ripristinate quando la connessione viene reimpostata se il pool di connessioni è abilitato. Se il pool di connessioni è disattivato, viene eseguito il rollback della transazione dopo SqlConnection.Close la chiamata. Le transazioni avviate tramite System.Transactions vengono controllate tramite l'infrastruttura System.Transactions e non sono interessate da SqlConnection.Close.
Un'applicazione può chiamare Close più volte. Non viene generata alcuna eccezione.
Se l'oggetto 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.
Note
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).
Caution
Non chiamare Close o Dispose su una connessione, un DataReader o qualsiasi altro oggetto gestito nel Finalize metodo della classe. In un finalizzatore è consigliabile rilasciare direttamente le risorse non gestite di proprietà della classe. 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.