Корпоративная библиотека 5.0 Принудительно закрывать активное соединение - PullRequest
3 голосов
/ 19 апреля 2011

Как принудительно закрыть соединение с базой данных?

Пример кода, который я использую для создания соединения:

class Customer{
     private readonly Database _db;
      public Customer(){
            _db = = DatabaseFactory.CreateDatabase(_userSettings.ConnstringName);
       }

   .. stuff to use this connection..

}

1 Ответ

1 голос
/ 19 апреля 2011

Поместите код (.. вещи для использования этого соединения ..) внутри блока using, который обеспечит закрытие соединения. Например:

using (DbCommand command = _db.GetStoredProcCommand(sprocName, parameters))    
{

и

using (IDataReader rdr = _db.ExecuteReader(command))
{

Использование блоков - хороший способ обеспечить правильное закрытие ресурсов:

Использование оператора позволяет программист, чтобы указать, когда объекты что использование ресурсов должно освободить им.

В противном случае вы должны явно вызвать метод Close() для объекта подключения:

if (command.Connection.State == ConnectionState.Open)
            command.Connection.Close();
...