SqlConnection.Close Метод

Определение

Закрывает подключение к базе данных. Это предпочтительный метод закрытия любого открытого подключения.

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 ()

Реализации

Исключения

Ошибка уровня подключения, которая произошла при открытии подключения.

Примеры

В следующем примере создается , SqlConnectionоткрывается, отображаются некоторые его свойства. Подключение автоматически закрывается в конце using блока.

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

Комментарии

Метод Close откатывает все ожидающие транзакции. Затем он освобождает подключение к пулу подключений или закрывает подключение, если пул подключений отключен.

Note

Ожидающие транзакции, запущенные с помощью Transact-SQL или BeginTransaction, автоматически откатываются при сбросе подключения при включении пула подключений. Если пул подключений отключен, транзакция откатится после SqlConnection.Close вызова. Транзакции, запущенные System.Transactions через инфраструктуру System.Transactions , управляются инфраструктурой и не влияют SqlConnection.Closeна них.

Приложение может вызывать Close несколько раз. Исключение не создается.

SqlConnection Если область выходит из области, она не будет закрыта. Таким образом, необходимо явно закрыть подключение путем вызова Close или Disposeвызова. Close и Dispose функционально эквивалентны. Если для пула Pooling подключений задано true значение или yesзначение базового подключения возвращается обратно в пул подключений. С другой стороны, если Pooling задано false значение или noустановлено базовое соединение с сервером, закрывается.

Note

События входа в систему и выхода из системы не вызываются на сервере при выборке подключения из пула подключений и при возврате его в пул подключений, поскольку при возврате в пул подключений подключение фактически не закрывается. Дополнительные сведения см. в разделе Объединение подключений в пул в SQL Server (ADO.NET).

Предостережение

Не вызывайте или Close не вызывайте Dispose подключение, DataReader или любой другой управляемый объект в методе Finalize класса. В средстве завершения следует освободить только неуправляемые ресурсы, принадлежащие вашему классу напрямую. Если класс не владеет какими-либо неуправляемыми ресурсами, не включайте в его определение метод Finalize. Дополнительные сведения см. в статье Сборка мусора.

Применяется к

См. также раздел