我一直在使用
connection.Close();
但这是我在.NET中的第一个项目,我不确定我是否正确关闭它。
我不希望我的网站在真正托管后立即死亡。
通常我这样做:
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
// <some code>
conn.Open();
/ <some code>
conn.Close();
答案 0 :(得分:6)
您应该将连接放在using语句中;
using(var connection = new SqlConnection)
{
connection.Open();
...other code using it here.
}
using语句确保在完成SqlConnection后处理它。在您的方案中(取决于您放置close方法的位置),如果异常关闭,它将永远不会到达Close()方法,并且连接将保持打开状态。
更好的是,因为您正在建立一个网站。 Request对象(应该可用)上应该有一个名为RegisterForDispose的方法。这将在请求结束时自动处理连接(关闭它)。您可以像这样使用它:
var connection = new SqlConnection();
Request.RegisterForDispose(connection);
最终两者都完成了同样的事情,但第二部分允许更多的灵活性。
答案 1 :(得分:2)
执行凯文所说的并将你的.Open()调用放在using块中:
using(var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()))
{
var cmd = new SqlCommand("my sql command here", conn);
conn.Open();
cmd.(whatever method you are using)
}