这两个到 ADO.NET 的连接是否相同(启用连接池)?
Are these two connections to ADO.NET the same (with connection pooling enabled)?
第二次使用有问题吗(代码段2)?如果是,问题是什么?
// ---Code snippet 1---
IDbConnection connection = new SqlConnection(connStr)
using(connection)
{
connection.Open(); // Open a connection in “using”
todo...
}
// ---Code snippet 2---
IDbConnection connection = new SqlConnection(connStr)
connection.Open(); // Open a connection outside “using”
using(connection)
{
todo...
}
using
语句只是用于正确处理 IDisposable
对象的内置语言支持,使用它您可以确保您的一次性对象在应该处理的时候处理。
它基本上转化为一个 try-finally 对,在 finally 块中有一个 dispose 调用。
您可以阅读有关 using 语句 here.
的更多信息
就是说,您应该将 using
关键字放在您创建一次性对象的第一条语句中,因此您的代码的正确版本是:
using (var connection = new SqlConnection(connStr))
{
connection.Open(); // Open a connection in “using”
todo...
}
我认为 using 关键字的位置对连接对象的作用或外观没有任何影响。
第二次使用有问题吗(代码段2)?如果是,问题是什么?
// ---Code snippet 1---
IDbConnection connection = new SqlConnection(connStr)
using(connection)
{
connection.Open(); // Open a connection in “using”
todo...
}
// ---Code snippet 2---
IDbConnection connection = new SqlConnection(connStr)
connection.Open(); // Open a connection outside “using”
using(connection)
{
todo...
}
using
语句只是用于正确处理 IDisposable
对象的内置语言支持,使用它您可以确保您的一次性对象在应该处理的时候处理。
它基本上转化为一个 try-finally 对,在 finally 块中有一个 dispose 调用。 您可以阅读有关 using 语句 here.
的更多信息就是说,您应该将 using
关键字放在您创建一次性对象的第一条语句中,因此您的代码的正确版本是:
using (var connection = new SqlConnection(connStr))
{
connection.Open(); // Open a connection in “using”
todo...
}
我认为 using 关键字的位置对连接对象的作用或外观没有任何影响。