【发布时间】:2011-09-26 08:12:49
【问题描述】:
我有以下代码
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";
}
问题是:如果using 括号({ })之间发生意外错误,var connection 是否仍会关闭?
问题是我对存储过程的大部分调用都是这样进行的,最近我收到了这个错误:
System.InvalidOperationException:超时已过期。超时 从池中获取连接之前经过的时间。这 可能已经发生,因为所有池连接都在使用中并且最大 已达到池大小。
我访问数据库的另一种方式是通过 nHibernate。
【问题讨论】:
标签: c# .net sql-server tsql sqlconnection