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 откатывает все ожидающие транзакции. Затем он освобождает подключение к пулу подключений или закрывает его, если пул подключений отключен.
Примечание
Ожидающие транзакции запускаются с помощью Transact-SQL или BeginTransaction автоматически откатываются при сбросе подключения, если включено использование пулов подключений. Если пул подключений отключен, транзакция откатывается после SqlConnection.Close
вызова . Транзакции, запущенные с помощью System.Transactions , контролируются через инфраструктуру System.Transactions
и не затрагиваются SqlConnection.Close
.
Приложение может вызывать метод Close более одного раза, исключения при этом не возникают.
Если элемент SqlConnection выходит из область, он не будет закрыт. Поэтому необходимо явно закрыть соединение, вызвав Close
или Dispose
.
Close
и Dispose
функционально эквивалентны. Если значение Pooling
пула подключений равно true
или yes
, базовое подключение возвращается обратно в пул подключений. С другой стороны, если Pooling
для задано значение false
или no
, базовое соединение с сервером закрывается.
Примечание
События входа в систему и выхода из системы не вызываются на сервере при выборке подключения из пула подключений и при возврате его в пул подключений, поскольку при возврате в пул подключений подключение фактически не закрывается. Дополнительные сведения см. в разделе Пулы подключений SQL Server (ADO.NET).
Внимание!
Не вызывайте Close
или Dispose
для connection, DataReader или любого другого управляемого объекта в методе Finalize
класса . В методе завершения следует освобождать только неуправляемые ресурсы, которыми непосредственно владеет ваш класс. Если класс не владеет какими-либо неуправляемыми ресурсами, не включайте в его определение метод Finalize
. Дополнительные сведения см. в статье Сборка мусора.