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块本身关闭了连接?

C#使用SQL方法需要关闭方法吗

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块内部的连接,如下面的代码片段所示。这样做可以确保在代码退出块时自动关闭连接。

不,您不必调用SqlConnectionClose-方法。当它在使用结束时被丢弃时,它会自动关闭。(Dispose-方法调用Close()([1]

其他答案都是正确的,不过,我想更明确一点
MSDN声明如下:

关闭处置在功能上是等效的。

因为使用using将调用Dispose,所以不需要单独调用Close

当您使用'using'关键字并在其中创建连接时。只要有"using"关键字的作用域,连接就是打开的。当达到右括号时,连接会自动关闭,因为它是在作用域内定义的,并且作用域不在现有中

换句话说,将其视为只能在作用域内访问的局部变量。希望这会有所帮助。