Обработка другого ConnectionStates перед открытием SqlConnection

Я собрал проект, который может преобразовать некоторые действительно аккуратные выражения. Проверьте timestring .

Вот несколько примеров ниже:

pip install timestring
>>> import timestring
>>> timestring.Date('monday, aug 15th 2015 at 8:40 pm')

>>> timestring.Date('monday, aug 15th 2015 at 8:40 pm').date
datetime.datetime(2015, 8, 15, 20, 40)
>>> timestring.Range('next week')

>>> (timestring.Range('next week').start.date, timestring.Range('next week').end.date)
(datetime.datetime(2014, 3, 10, 0, 0), datetime.datetime(2014, 3, 14, 0, 0))

5
задан wnka 19 September 2008 в 16:38
поделиться

2 ответа

http://msdn.microsoft.com/en-us/library/system.data.connectionstate.aspx

Поврежденное состояние соединения действительно должно быть закрыто и вновь открыто прежде имеющее право на длительное использование.

Править: К сожалению, закрытие закрытого соединения уклонится также. Необходимо будет протестировать ConnectionState прежде, чем действовать на неизвестное соединение. Возможно, короткий оператор переключения мог добиться цели.

5
ответ дан 13 December 2019 в 05:45
поделиться

Это непосредственно не отвечает на Ваш вопрос, но лучшая практика должна открыть и закрыть соединение для каждого доступа к базе данных. организация пула подключений ADO.NET гарантирует, что это работает хорошо. Особенно важно сделать это в приложениях для сервера (например, ASP.NET), но я сделал бы это даже в приложении WinForms, которое получает доступ к базе данных непосредственно.

Пример:

using(SqlConnection connection = new SqlConnection(...))
{
   connection.Open();
   // ... do your stuff here

}  // Connection is disposed and closed here, even if an exception is thrown

Таким образом Вы никогда не должны проверять состояние соединения при открытии соединения.

4
ответ дан 13 December 2019 в 05:45
поделиться