SqlConnection.Close Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Cierra la conexión con la base de datos. Es el método preferido para cerrar cualquier conexión abierta.
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 ()
Implementaciones
Excepciones
Error de nivel de conexión ocasionado al abrir la conexión.
Ejemplos
En el ejemplo siguiente se crea un SqlConnection, se abre, se muestran algunas de sus propiedades. La conexión se cierra automáticamente al final del using
bloque.
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
Comentarios
El Close método revierte las transacciones pendientes. A continuación, libera la conexión al grupo de conexiones o cierra la conexión si la agrupación de conexiones está deshabilitada.
Nota
Las transacciones pendientes que se inician con Transact-SQL o BeginTransaction se revierten automáticamente cuando se restablece la conexión si la agrupación de conexiones está habilitada. Si la agrupación de conexiones está desactivada, la transacción se revierte después SqlConnection.Close
de llamar a . Las transacciones iniciadas a través System.Transactions de se controlan a través de la System.Transactions
infraestructura y no se ven afectadas por SqlConnection.Close
.
Una aplicación puede llamar a Close más de una vez. No se genera ninguna excepción.
SqlConnection Si sale del ámbito, no se cerrará. Por lo tanto, debe cerrar explícitamente la conexión llamando a Close
o Dispose
.
Close
y Dispose
son funcionalmente equivalentes. Si el valor Pooling
de agrupación de conexiones se establece true
en o yes
, la conexión subyacente se devuelve al grupo de conexiones. Por otro lado, si Pooling
se establece false
en o no
, se cierra la conexión subyacente al servidor.
Nota:
Los eventos de inicio y cierre de sesión no se provocarán en el servidor cuando se busque una conexión desde el grupo de conexiones o se devuelva a éste, puesto que la conexión no está cerrada realmente cuando se devuelve al grupo de conexiones. Para obtener más información, vea Agrupación de conexiones de SQL Server (ADO.NET).
Precaución
No llame a Close
o Dispose
en un objeto Connection, DataReader o cualquier otro objeto administrado en el Finalize
método de la clase . En un finalizador, solo debe liberar los recursos no administrados que posee su clase directamente. Si la clase no dispone de recursos no administrados, no incluya un método Finalize
en la definición de clase. Para obtener más información, consulte Recolección de elementos no utilizados.