C#使用SQL方法需要关闭方法吗
本文关键字:方法 使用 SQL | 更新日期: 2023-09-27 18:05:46
在C#中为SQL连接使用using
块时,这也是一种关闭方法吗?我这样问是因为我需要明确地使用con.Open()
方法。我发现了这个例子:
using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open(); // open method
string queryString = "select * from db";
SqlCommand cmd = new SqlCommand(queryString, con);
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
??? // What about a close method?
}
还是using
块本身关闭了连接?
using
翻译为:
SqlConnection con = new SqlConnection(connectionString)
try
{
con.Open(); <-- open method
string queryString = "select * from db";
SqlCommand cmd = new SqlCommand(queryString, con);
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
}
finally
{
if (con!= null)
((IDisposable)con).Dispose();
}
其中CCD_ 5关闭要关闭的内容。
您不必关闭它-using
就足够了。MSDN表示:
为了确保连接始终是关闭的,请打开using块内部的连接,如下面的代码片段所示。这样做可以确保在代码退出块时自动关闭连接。
不,您不必调用SqlConnection
的Close
-方法。当它在使用结束时被丢弃时,它会自动关闭。(Dispose
-方法调用Close()
([1]
其他答案都是正确的,不过,我想更明确一点
MSDN声明如下:
关闭和处置在功能上是等效的。
因为使用using
将调用Dispose
,所以不需要单独调用Close
。
当您使用'using'关键字并在其中创建连接时。只要有"using"关键字的作用域,连接就是打开的。当达到右括号时,连接会自动关闭,因为它是在作用域内定义的,并且作用域不在现有中
换句话说,将其视为只能在作用域内访问的局部变量。希望这会有所帮助。