什么是
using (SqlConnection cn = new SqlConnection(connectionString))
办?
答案 0 :(得分:13)
new SqlConnection(connectionString)
针对提供的连接字符串创建新的SqlConnection
实例。
SqlConnection cn = ...
将其分配给保存构造的连接对象的新局部变量cn
(范围为using
语句)。
using(...)
是using
语句 - 它确保连接是Dispose()
- d,即使抛出异常(在这种情况下Dispose()
表示关闭它/释放到游泳池等)
整个代码基本上是 :
{ // this { } scope is to limit the "cn"
SqlConnection cn = new SqlConnection(connectionString);
try { // the body of the using block
...
} finally { // dispose if not null
if(cn != null) { cn.Dispose(); }
}
}
答案 1 :(得分:4)
它在不再需要之后处理SqlConnection
。在这种情况下,SqlConnection
可能会留下一些非托管资源,您应该清理它们。 SqlConnection
实施IDisposable
,这意味着您可以(应该)在完成工作后调用Dispose
。
它基本上是一个简写:
try {
SqlConnection cn = new SqlConnection(connectionString);
// whatever other code
}
finally {
if (cn != null)
{
cn.Dispose();
}
}
当您使用using
时,cn
的范围也会扩展到try
之外(finally
)。
如果您想了解更多信息,请查看有关此主题的MSDN's article。
答案 2 :(得分:2)
确保在“使用”范围
结束时销毁SqlConnection答案 3 :(得分:1)
using语句可以应用于实现IDisposable
接口的对象。
在使用范围的最后,在对象上调用Dispose。
答案 4 :(得分:1)
答案 5 :(得分:0)
这可确保在控件离开时使用(){..}子句释放连接。
由于异常,函数返回,中断循环,goto或正常离开范围,可能会发生离开。非常方便。