SqlConnection.Close Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fecha a conexão com o banco de dados. Esse é o método preferencial para fechar qualquer conexão aberta.
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 ()
Implementações
Exceções
O erro de nível de conexão que ocorreu ao abrir a conexão.
Exemplos
O exemplo a seguir cria um SqlConnection, abre-o, exibe algumas de suas propriedades. A conexão é fechada automaticamente no final do using bloco.
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
Comentários
O Close método reverte todas as transações pendentes. Em seguida, ele libera a conexão com o pool de conexões ou fecha a conexão se o pool de conexões estiver desabilitado.
Note
As transações pendentes iniciadas usando Transact-SQL ou BeginTransaction serão revertidas automaticamente quando a conexão for redefinida se o pool de conexões estiver habilitado. Se o pool de conexões estiver desativado, a transação será revertida após SqlConnection.Close ser chamada. As transações iniciadas são System.Transactions controladas por meio da System.Transactions infraestrutura e não são afetadas por SqlConnection.Close.
Um aplicativo pode chamar Close mais de uma vez. Nenhuma exceção é gerada.
Se o SqlConnection escopo sair, ele não será fechado. Portanto, você deve fechar explicitamente a conexão chamando Close ou Dispose.
Close e Dispose são funcionalmente equivalentes. Se o valor Pooling do pool de conexões estiver definido true como ou yes, a conexão subjacente será retornada de volta ao pool de conexões. Por outro lado, se Pooling estiver definido false como ou no, a conexão subjacente com o servidor será fechada.
Note
Eventos de logon e logout não serão gerados no servidor quando uma conexão for procurada de ou retornada para o pool de conexões, porque a conexão não é fechada realmente quando é retornada para o pool de conexões. Para obter mais informações, consulte SQL Server Connection Pooling (ADO.NET).
Caution
Não chame Close nem Dispose em uma conexão, um DataReader ou qualquer outro objeto gerenciado no Finalize método de sua classe. Em um finalizador, você só deve liberar recursos não gerenciados que sua classe possui diretamente. Se a classe não tiver nenhum recurso não gerenciado, não inclua um método Finalize em sua definição de classe. Para obter mais informações, confira Coleta de lixo.