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 a la base de datos. Este es el método preferido para cerrar cualquier conexión abierta.
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 ()
Implementaciones
Excepciones
Error de nivel de conexión que se produjo al abrir la conexión.
Ejemplos
En el ejemplo siguiente se crea un SqlConnection, se abre y 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.
Note
Las transacciones pendientes iniciadas con Transact-SQL o BeginTransaction se revierten automáticamente cuando se restablece la conexión si está habilitada la agrupación de conexiones. 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.
Note
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).
Caution
No llame a Close ni Dispose en una conexión, un Objeto DataReader ni ningún otro objeto administrado en el método de la Finalize clase. En un finalizador, solo debe liberar recursos no administrados que su clase posee 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 basura.