连接没有关闭。连接的当前状态为“打开”

时间:2016-08-09 15:19:57

标签: c# code-behind

我收到了这个错误。我已经阅读过使用过块的帖子,但我有一个,我仍然收到错误。

我的代码隐藏是:

    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();行。有什么想法吗?

1 个答案:

答案 0 :(得分:6)

您尝试打开连接两次,在方法中有conn.Open()次2次,但是在尝试重新打开"之前,您是关闭连接的。它

您确定要两次打开连接吗?尝试删除实际应用的第二个conn.Open()