string userid = TxtUser.Text.Trim();
        string pw = TxtPwd.Text.Trim();
        string js = DropDownList1.SelectedItem.ToString().Trim();
        cmd.CommandText = "select * from TbLogin where userID='"+ userid + "'and password='"+ pw +"'and ManagerRole='"+js +"'";
        cmd.Connection = conn;
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.Read())
        {
            Session["userid"] = dr["userID"].ToString().Trim();
            Session["username"] = dr["userName"].ToString().Trim();
            Session["pw"] = dr["password"].ToString().Trim();
            Session["js"] = dr["ManagerRole"].ToString().Trim();
            Session["AssoName"] = dr["AssoName"].ToString().Trim();
            if (js =="管理员")
            {
                Response.Redirect("~/Admin.aspx");
                            }
            else
            {
                Response.Redirect("~/other.aspx");
            }
        }
        else
        {
            lbMessage.Text = "用户名或密码错误!";
        }为什么有时  登录JS==“管理员时”    账号 密码全都是正确的   但还是提示: 用户名或密码错误     需要怎么修改呢

解决方案 »

  1.   

    if(dr.Read())  //这个只读取一行数据,怎么行??你数据库里肯定不止一条数据了改用循环判断while 
     string userid = TxtUser.Text.Trim();
      string pw = TxtPwd.Text.Trim();
      string js = DropDownList1.SelectedItem.Text.Trim();
      cmd.CommandText = "select * from TbLogin where userID='"+ userid + "' and password='"+ pw +"' and ManagerRole='"+js +"'";
      cmd.Connection = conn;
      conn.Open();
      SqlDataReader dr = cmd.ExecuteReader();
      while(dr.Read())
      {
      Session["userid"] = dr["userID"].ToString().Trim();
      Session["username"] = dr["userName"].ToString().Trim();
      Session["pw"] = dr["password"].ToString().Trim();
      Session["js"] = dr["ManagerRole"].ToString().Trim();
      Session["AssoName"] = dr["AssoName"].ToString().Trim();
      if (js =="管理员")
      {
         Response.Redirect("~/Admin.aspx");
      }
      else
      {
         Response.Redirect("~/other.aspx");
      }
      }
      

  2.   

    是不是错打了空格。调试看看sql语句对不对嘛
      

  3.   

    你确定账号密码输入正确了吗?调试看看,或者用dr.HasRows 先判断一下是否存在数据