读取器关闭时无效尝试调用MetaData?

Ace*_*ter 5 c# sql-server asp.net datareader visual-studio

我正在从datareader运行if else语句来查询表数据并激活/取消激活页面上的某些控件.当我关闭块时,我实现了一个using语句来自动关闭连接和读取器,但是我的每个if else语句仍然会让读者关闭错误.少了什么东西?代码如下:

string comnt = "SELECT StatusId FROM Submission WHERE SubmissionId =" + x;


    using (SqlConnection editConn = new SqlConnection(connectionString))
    {
        editConn.Open();

        using (SqlCommand statCmd = new SqlCommand(comnt, editConn))
        {
            SqlDataReader dr = statCmd.ExecuteReader();
            dr.Read();
            if (dr.GetInt32(0) > 0)
            {
                PanelComment.Visible = true;
                PanelQuote.Visible = false;
                LnbFid.Visible = false;
                LnbCrim.Visible = false;
                LnbEo.Visible = false;
                LnbEpl.Visible = false;
                LnbNot.Visible = false;
                LnbPriv.Visible = false;
                LnbPub.Visible = false;

            }
            else
            {
                PanelComment.Visible = false;
            }

        } 
Run Code Online (Sandbox Code Playgroud)

InB*_*een 3

您的查询没有返回任何结果。如果您不确定查询是否会返回任何数据,请习惯以下构造:

while (dr.Read()) //will return true while there is data to be read.
{
    ...
}
Run Code Online (Sandbox Code Playgroud)