【发布时间】:2011-04-06 09:03:53
【问题描述】:
我想在最后关闭 SqlConnection,因为使用并没有真正关闭它并且连接池已满。但我不知道什么是正确的方法,因为 conn 对象在 finally 部分中不再可访问。
try
{
using (var conn = new SqlConnection(_dbconnstr))
{
//...
}
}
catch (Exception ex)
{
//...
}
finally
{
conn.Close //?!?!?!?!???
}
【问题讨论】:
-
您还有其他问题。
using在内部实现为try/finally对,在finally块中调用 Dispose。对于SqlConnection,Close和Dispose是可以互换的。 -
作为答案,我建议您检查有关 DataReaders 的相同内容:您关闭 Connection 的方式没问题。
-
哦,我完全忽略了完整的 Using 块位于 try{ } 块中的观点。我误读了这一点,因为括号的缩进方式很奇怪。