我有这样一段代码: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();
现在我的问题是。 如果回报,确实我的连接和DTR都会自动关闭,或者我应该使用布尔变量和我的连接都处在关闭后进行回报?
但他可能使用连接池无法控制。这意味着,垃圾收集器不会关闭连接。在那种情况下,当他尝试再次创建并打开新连接时,他将面临InvalidOperationException。 – Egor4eg 2010-12-08 09:47:14