连接未关闭。连接的当前状态是打开
The connection was not closed. The connection's current state is Open
我遇到了这个错误。我读过一些帖子说要使用 Using 块,但我有一个,但我仍然遇到错误。
我的代码隐藏是:
protected void btnEdit_OnClick(object sender, EventArgs e)
{
MdlCommentsExtender.Enabled = true;
MdlCommentsExtender.Show();
Button button = (Button)sender;
string buttonId = button.ID;
string[] tokens = buttonId.Split('-');
ScriptManager.GetCurrent(this).SetFocus(this.txtCommentBox);
//**************************/
try
{
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnCST"].ToString();
conn.Open();
SqlCommand cmd2 = new SqlCommand();
cmd2.Connection = conn;
string CmdTxt = "Select CBL.ID, CBL.[Category], CBL.[Provision], CTL.MarkForReview, CTL.IssueType, CTL.Resolution, CTL.Feedback, CTL.TemplateID";
CmdTxt = CmdTxt + " from [tblCSTBenefitList] CBL";
CmdTxt = CmdTxt + " LEFT JOIN tblCSTTemplateList CTL";
CmdTxt = CmdTxt + " ON CBL.ID = CTL.BenefitID";
CmdTxt = CmdTxt + " where CBL.ID > '0'";
CmdTxt = CmdTxt + " ORDER BY CBL.[Category], CBL.[Provision] ASC";
cmd2.CommandText = CmdTxt;
SqlDataReader reader;
conn.Open();
reader = cmd2.ExecuteReader();
reader.Read();
lblBenCatX.Text = Convert.ToString(reader["Category"]);
lblBenProvX.Text = Convert.ToString(reader["Provision"]);
txtCommentBox.Text = Convert.ToString(reader["Feedback"]);
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
/*******************************************/
//txtCommentBox.Text = "First: " + tokens[0] + " and then " + tokens[1] + "";
}
它发生在 conn.Open();
线上。有什么想法吗?
您正在尝试打开连接两次,您的方法中有 conn.Open()
次,但您较新的是在尝试 "re-open" 之前关闭连接。
您确定要打开连接两次吗?尝试删除第二个 conn.Open()
,它应该确实有效。
我遇到了这个错误。我读过一些帖子说要使用 Using 块,但我有一个,但我仍然遇到错误。
我的代码隐藏是:
protected void btnEdit_OnClick(object sender, EventArgs e)
{
MdlCommentsExtender.Enabled = true;
MdlCommentsExtender.Show();
Button button = (Button)sender;
string buttonId = button.ID;
string[] tokens = buttonId.Split('-');
ScriptManager.GetCurrent(this).SetFocus(this.txtCommentBox);
//**************************/
try
{
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnCST"].ToString();
conn.Open();
SqlCommand cmd2 = new SqlCommand();
cmd2.Connection = conn;
string CmdTxt = "Select CBL.ID, CBL.[Category], CBL.[Provision], CTL.MarkForReview, CTL.IssueType, CTL.Resolution, CTL.Feedback, CTL.TemplateID";
CmdTxt = CmdTxt + " from [tblCSTBenefitList] CBL";
CmdTxt = CmdTxt + " LEFT JOIN tblCSTTemplateList CTL";
CmdTxt = CmdTxt + " ON CBL.ID = CTL.BenefitID";
CmdTxt = CmdTxt + " where CBL.ID > '0'";
CmdTxt = CmdTxt + " ORDER BY CBL.[Category], CBL.[Provision] ASC";
cmd2.CommandText = CmdTxt;
SqlDataReader reader;
conn.Open();
reader = cmd2.ExecuteReader();
reader.Read();
lblBenCatX.Text = Convert.ToString(reader["Category"]);
lblBenProvX.Text = Convert.ToString(reader["Provision"]);
txtCommentBox.Text = Convert.ToString(reader["Feedback"]);
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
/*******************************************/
//txtCommentBox.Text = "First: " + tokens[0] + " and then " + tokens[1] + "";
}
它发生在 conn.Open();
线上。有什么想法吗?
您正在尝试打开连接两次,您的方法中有 conn.Open()
次,但您较新的是在尝试 "re-open" 之前关闭连接。
您确定要打开连接两次吗?尝试删除第二个 conn.Open()
,它应该确实有效。