SqlConnection.Close Método

Definição

Fecha a ligação à base de dados. Este é o método preferido para fechar qualquer ligaçã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 ao nível da ligação que ocorreu ao abrir a ligação.

Exemplos

O exemplo seguinte cria um SqlConnection, abre-o, apresenta algumas das suas propriedades. A ligação é automaticamente fechada 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

Observações

O Close método reverte quaisquer transações pendentes. Depois, liberta a ligação ao pool de ligações, ou fecha a ligação se o pool de ligação estiver desativado.

Note

Transações pendentes iniciadas a usar Transact-SQL ou BeginTransaction são automaticamente revertidas quando a ligação é reiniciada se o pool de ligação estiver ativado. Se o pooling de ligação estiver desativado, a transação é revertida após SqlConnection.Close ser chamada. As transações iniciadas através System.Transactions da infraestrutura são controladas System.Transactions pela infraestrutura e não são afetadas por SqlConnection.Close.

Uma candidatura pode ligar Close mais do que uma vez. Não é gerada nenhuma exceção.

Se sair SqlConnection do âmbito, não será fechado. Portanto, deve fechar explicitamente a ligação chamando Close ou Dispose. Close e Dispose são funcionalmente equivalentes. Se o valor Pooling do pool de ligação for definido para true ou yes, a ligação subjacente é devolvida ao pool de ligações. Por outro lado, se Pooling for definido como false ou no, a ligação subjacente ao servidor é encerrada.

Note

Os eventos de login e logout não serão gerados no servidor quando uma conexão for buscada ou retornada ao pool de conexões, porque a conexão não será realmente fechada quando for retornada ao pool de conexões. Para obter mais informações, consulte Pool de conexões do SQL Server (ADO.NET).

Caution

Não ligue Close nem Dispose use uma Ligação, um DataReader ou qualquer outro objeto gerido no Finalize método da sua aula. Num finalizador, só deves libertar recursos não geridos que a tua classe possua diretamente. Se sua classe não possui recursos não gerenciados, não inclua um Finalize método em sua definição de classe. Para obter mais informações, consulte Coleta de lixo.

Aplica-se a

Ver também