【发布时间】:2011-04-02 15:51:33
【问题描述】:
ExecuteNonQuery 需要一个开放且可用的连接。连接的当前状态为关闭。
我在这里做错了什么?我假设您可以重复使用该连接?
感谢您的帮助!
using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString()))
{
cn.Open();
// If we are reverting to an old type
if (pageAction == "revert")
{
debug.Text = "FLAG 1";
// Get the revert ID
int revertingID = int.Parse(Request.QueryString["revID"]);
bool rowsReturned = false;
debug.Text = "FLAG 2 - " + revertingID.ToString();
// Set all to 0
using (SqlCommand cmd = new SqlCommand("SELECT ID FROM tblSiteSettings WHERE ID = " + revertingID, cn))
{
// If it exists
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
if (rdr.Read())
{
rowsReturned = true;
}
rdr.Close();
}
debug.Text = "FLAG 3 - " + rowsReturned.ToString();
// Set new active and reset others
if (rowsReturned == true)
{
using (SqlCommand cmd = new SqlCommand("UPDATE tblSiteSettings SET isActive = 1 WHERE ID = " + revertingID, cn))
{
cmd.ExecuteNonQuery();
}
using (SqlCommand cmd = new SqlCommand("UPDATE tblSiteSettings SET isActive = 0 WHERE ID <> " + revertingID, cn))
{
cmd.ExecuteNonQuery();
}
}
//debug.Text = "FLAG 4 - ";
}
【问题讨论】:
-
对于任何在谷歌上搜索德语错误消息的人,它 e。 G。内容为:“'ExecuteNonQuery erfordert eine geöffnete und verfügbare Connection. Der aktuelle Status der Verbindung ist 'Geschlossen'.'”。