一个ASP.net登录页面的代码
protected void btnLogin_Click(object sender, EventArgs e)
    {
        string UID = tbusername.ToString();
        string PWD = tbpassword.ToString();
        for (int i = 0; i < LimitSelect.Items.Count; i++)
        {
            if (LimitSelect.Items[i].Selected)
            {
                Label1.Text = LimitSelect.Items[i].Value;
            }
        }
        string Power = Label1.Text;
        string sqlstr = "SELECT   username, pwd, Limits FROM UserInfo WHERE   (username = '" + UID + "') AND (pwd = '" + PWD + "') AND (Limits = '" + Power + "')";         SqlConnection conn = new SqlConnection(@"Data Source=123-PC\SQLEXPRESS;Initial Catalog=LibraryMS;Integrated Security=True");
        SqlCommand cmd = new SqlCommand(sqlstr,conn);             if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
            SqlDataReader reader = cmd.ExecuteReader();   
            SqlDataAdapter sqlcmd =  new   SqlDataAdapter(sqlstr,conn);        if (reader.Read())
        {
            Session["username"] = UID;
            Session["pwd"] = PWD;
            Session["Limits"] = Power;
            switch (Power)
            {
                case "0":
                    Response.Redirect("SysAdmin.aspx");
                    break;
                case "1":
                    Response.Redirect("Manager.aspx");
                    break;
                case "2":
                    Response.Redirect("Users.aspx");
                    break;
                default:
                    Response.Redirect("Customers.aspx");
                    break;
            }
        }
}

解决方案 »

  1.   

    调试一下看看sqlstr 放到数据库执行下看看是否找到行
      

  2.   

     string sqlstr = "SELECT username, pwd, Limits FROM UserInfo WHERE (username = '" + UID + "') AND (pwd = '" + PWD + "') AND (Limits = '" + Power + "')";  加断点 看看SQL 是怎样的是不是 UID 和PWD 为 空
      

  3.   

    我server managerment studio express上面select执行过可以找到数据,就是不知道程序里面怎么运行不出来
    我断点查看了一下
    reader()里面
    Depth = 0
    FieldCount = 3
    HasRows = false
    IsClosed = false
    RecordsAffected = -1
    VisibleFieldCount = 3
      

  4.   

    UID PWD Power 我都看了不为空的
      

  5.   

    HasRows = false
    --------
    就说明没数据你断点看看 sqlstr ,然后在SQL中执行下 
      

  6.   

    SELECT   username, pwd, Limits FROM UserInfo WHERE   (username = 'System.Web.UI.WebControls.TextBox') AND (pwd = 'System.Web.UI.WebControls.TextBox') AND (Limits = '0')
    这是断点显示的
      

  7.   

            string UID = tbusername.ToString();
            string PWD = tbpassword.ToString();
    然后我吧tb空间的值都写上了啊,不会没值的
      

  8.   

    string UID = tbusername.Text;  
    string PWD = tbpassword.Text;
      

  9.   

    没有取到textbox的值
    string UID = tbusername.Text;   
    string PWD = tbpassword.Text;