ExecuteReader: CommandText 属性尚未初始化 
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: ExecuteReader: CommandText 属性尚未初始化源错误: 
行 36:         SqlCommand cmd = new SqlCommand(selectStr, conn);
行 37:         conn.Open();
行 38:         SqlDataReader sdr = cmd.ExecuteReader();
行 39:         if (sdr.Read())
行 40:         {
 源文件: d:\ASP.NET网站设计\WebSite\Login.aspx.cs    行: 38 
CommandText

解决方案 »

  1.   

    cmd.CommandType = CommandType.Text;
      

  2.   

    把cmd.CommandType = CommandType.Text;
    放在第36行和第37行中间还是提示:CommandText 属性尚未初始化 
    啊!!!
      

  3.   

    行 36:         SqlCommand cmd = new SqlCommand(selectStr, conn);
     行 37:         conn.Open();
    换成这样
    conn.Open();
    cmd.Connection = conn;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = selectStr;
    selectStr有值吧?
      

  4.   

    我在前边赋值有:
    string selectStr="";
    断点了一下selectStr为空。
    不懂
    如果将:
     行 36:         SqlCommand cmd = new SqlCommand(selectStr, conn);
     行 37:         conn.Open();
    换成这样
    conn.Open();
    cmd.Connection = conn;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = selectStr;
    那不是一样吗?况且cmd又没有类型了。
      

  5.   

    string selectStr="select * from [table]";
      

  6.   

    回复 #6
    不能那么该呀;下边是全部代码,请看:using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data.SqlClient;
    using System.Configuration;
    using System.Data;public partial class Login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {    }
        protected void Button1_Click(object sender, EventArgs e)
        {
            string userName = txtUserName.Text.ToString().Trim();
            string userPwd = txtPwd.Text.ToString().Trim();
            string userRole = rblClass.Text.ToString().Trim();
            string selectStr="";
            switch (userRole)
            {
                case "0":
                    selectStr = "Select * from 教师 where =教师号'" + userName + "'";
                    break;
                case "1":
                    selectStr = "Select * from 学生 where 学号='" + userName + "'";
                    break;
                case "2":
                    selectStr = "Select * from 管理员 where 管理员账号='" + userName + "'";
                    break;
            }
            SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
            SqlCommand cmd = new SqlCommand(selectStr, conn);
            cmd.CommandType = CommandType.Text;
            conn.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            if (sdr.Read())
            {
                if (sdr.GetString(1) == userPwd)
                {
                    Session["userName"] = userName;
                    Session["userRole"] = userRole;
                    conn.Close();
                    switch (userRole)
                    {
                        case "0":
                            Response.Redirect("teacherCourseDatails.aspx");
                            break;
                        case "1":
                            Response.Redirect("studentQueryScore.aspx");
                            break;
                        case "2":
                            Response.Redirect("Main.aspx");
                            break;
                    }
                }
                else
                {
                    lblMessage1.Text = "您输入的密码错误,请检查后重新输入!";
                }
            }
            else
            {
                lblMessage1.Text = "该用户不存在或用户名输入错误,请检查后重新输入!";
            }        conn.Close();
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            Response.Write("<a href='javascript:window.opener=null;window.close()'>关闭窗口</a>");
        }
        protected void txtPwd_TextChanged(object sender, EventArgs e)
        {    }
    }
      

  7.   

    string selectStr="select * from [table]";
    cmd.Connection = conn;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = selectStr;
    SqlCommand cmd = new SqlCommand(selectStr, conn);
    conn.Open();
      

  8.   

    string selectStr="select * from [table]";
    我所建的表有管理员、教师、学生。这个table着实是没法写,代码在#7,下边是控件截图:
      

  9.   

    估计switch (userRole)这个userRole的值case的三种情况都不成立,所以为空。