连接没有关闭.连接的当前状态为"打开"

Joh*_*nes 1 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] + "";
    }
Run Code Online (Sandbox Code Playgroud)

它发生conn.Open();在线上.有任何想法吗?

bas*_*der 6

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

您确定要两次打开连接吗?尝试删除第二个conn.Open(),这应该实际工作.