gpt4 book ai didi

sql-server - 处理 Sql 连接

转载 作者:行者123 更新时间:2023-12-03 01:03:53 25 4
gpt4 key购买 nike

只是想知道,当此方法完成时,SqlConnection 是否会被处置/关闭?或者我是否必须在最后显式调用 close 方法?

   using (SqlCommand cmd = new SqlCommand(sql, GetConnection()))
{
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
}
}

SqlConnection GetConnetion()
{
return new SqlConnection("connectionstring");
}

我知道我可以做这样的事情:

SqlConnection conn = GetConnetion();
SqlCommand cmd =new SqlCommand(sql, conn);
//Do Something
conn.Close()
cmd.Dispose()

但只是好奇 using block 在这种情况下如何工作。干杯

最佳答案

不,连接对象不会在您的示例中自动处置。 using block 仅适用于 SqlCommand 对象,不适用于连接。

要确保连接已释放,请确保将 SqlConnection 对象包装在其自己的 using block 中:

using (SqlConnection conn = GetConnection())
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
// don't forget to actually open the connection before using it
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
// do something
}
}
}

关于sql-server - 处理 Sql 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1589491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com