gpt4 book ai didi

c# 是否关闭 sqlconnection 和 sqldatareader?

转载 作者:太空狗 更新时间:2023-10-30 00:00:30 24 4
gpt4 key购买 nike

我有这段代码:


SqlConnection conn;
string strconString = System.Configuration.ConfigurationManager.ConnectionStrings["SQLCONN"].ToString();
conn = new SqlConnection(strconString);
string cmdstr = "select status from racpw where vtgid = " + vtgid;
SqlCommand cmdselect = new SqlCommand(cmdstr, conn);
conn.Open();
SqlDataReader dtr = cmdselect.ExecuteReader();
if (dtr.Read())
{
return;
}
else
{
...
}
dtr.Close();
conn.Close();

现在我的问题是。如果返回,我的连接和 dtr 会自动关闭还是我应该使用 bool 变量并在我的连接关闭后执行返回?

最佳答案

您必须在返回前关闭连接。最好的方法是使用 block ,因为 SqlConnection 实现了 IDisposable 接口(interface)。在这种情况下,您不必记住即使抛出异常也必须关闭连接。

请看下面的例子:

using (var conn = new SqlConnection(strconString))
{
string cmdstr =
"select status from racpw where vtgid = " + vtgid;
using (var cmdselect = new SqlCommand(cmdstr, conn))
{
conn.Open();
using(var dtr = cmdselect.ExecuteReader())
{
if (dtr.Read())
{
return;
}
else
{
...
}
}
}
}

关于c# 是否关闭 sqlconnection 和 sqldatareader?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4385837/

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