这段代码有什么作用?

时间:2010-05-31 07:45:49

标签: c#

什么是

using (SqlConnection cn = new SqlConnection(connectionString))

办?

6 个答案:

答案 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)

以下是MSDN doco的一些链接:

Using statement

SqlConnection class

答案 5 :(得分:0)

这可确保在控件离开时使用(){..}子句释放连接。

由于异常,函数返回,中断循环,goto或正常离开范围,可能会发生离开。非常方便。