У меня есть следующий код
try
{
using (var connection = new SqlConnection(Utils.ConnectionString))
{
connection.Open();
using (var cmd = new SqlCommand("StoredProcedure", connection))
{
cmd.CommandType = System.Data.CommandType.StoredProcedure;
var sqlParam = new SqlParameter("id_document", idDocument);
cmd.Parameters.Add(sqlParam);
int result = cmd.ExecuteNonQuery();
if (result != -1)
return "something";
//do something here
return "something else";
}
}
//do something
}
catch (SqlException ex)
{
return "something AKA didn't work";
}
Вопрос в том, закрывается ли var connection
, если между скобками using
({ }
) возникает непредвиденная ошибка?
Проблема в том, что большинство моих вызовов хранимых процедур выполняются таким образом, и в последнее время я получаю эту ошибку:
System.InvalidOperationException: Истекло время ожидания.Время ожидания истекло до получения соединения из пула.Это могло произойти из-за того, что все пулы подключений использовались и был достигнут максимальный размер пула.
Другой способ доступа к БД - через nHibernate.