Compartir vía


SqlConnection.Close Método

Definición

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.

Se aplica a

Consulte también