Ben*_*Ben 4 c# sqlconnection sqldatareader
我有这段代码:
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();
Run Code Online (Sandbox Code Playgroud)
现在我的问题是.如果返回,我的连接和dtr是自动关闭还是我应该使用bool变量并在我的连接关闭后执行返回?
您必须在返回前关闭连接.最好的方法是USING block,因为SqlConnection实现了IDisposable接口.在这种情况下,您不必记住即使抛出异常也必须关闭连接.
请参阅以下示例:
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
{
...
}
}
}
}
Run Code Online (Sandbox Code Playgroud)