你可能数据库设计的是CHAR不是VARCHAR,
你设定CHAR长度为20,但你的密码为6位的话,数据库会给你补14个空格!

解决方案 »

  1.   

    如果用TextBox输入的话,别忘了加.Trim()
      

  2.   

    什么数据库,要验证你的用户和密码的正确性,就必须先保证你的sql的正确性,调试通了在加到程序中
      

  3.   

    if(Text_name.Text=="")error.Text="请输入用户名和口令!";//判断,无输入时给出提示
    else
    {
    try
    {
    if (Conn.State.ToString()=="Closed")//如果数据库未打开,则打开数据库
    Conn.Open();
    }
    catch
    {
    error.Text="数据库连接失败!请与管理员联系!!!";//报错
    return;
    } login.SelectCommand.Parameters.Clear();//初始化适配器
    login.SelectCommand.Parameters.Add("name",Text_name.Text.Trim());//以用户名为参数,执行查询

    System.Data.OleDb.OleDbDataReader Dr_login;//定义临时变量
    Dr_login=login.SelectCommand.ExecuteReader();//读取用户信息 if(Dr_login.Read())
    {
    if(Dr_login.GetString(0).Trim()==Text_pass.Text)
    {
    //如果用户名密码皆对,则对Session附值
    Session["User_Right"] = Convert.ToInt32(Dr_login.GetValue(1));
    Session["User_Id"]    = Dr_login.GetValue(2).ToString();
    Session["User_Name"]  = Dr_login.GetString(3).Trim();
    Session["User_Unit"]  = Dr_login.GetString(4).Trim();
    Session["User_Depart"]= Dr_login.GetString(5).Trim();
    Session["User_Num"]   = Dr_login.GetString(6).Trim();
    Session["User_BH"]    = Text_name.Text.Trim();
    error.Text="";//报错区域清空。
    Session["flag"] = "2";//表示2还没有接班 //======写入在线信息========
    Application.Lock();
    Application["online"]=System.Convert.ToInt32(Application["online"].ToString())+1;Application["username"]+=Session["User_Name"].ToString();
    Application["username"]+="<br>";
    Application.UnLock();
    //========================== //返回首页
    Response.Redirect("Main.aspx");
    }
    else
       error.Text="密码错误!!!请重新输入!";//判断,密码错误
    }
    else
    error.Text="没有这个用户!!!请重新输入!";//判断,无此用户
    login.Close();//关闭临时变量 Conn.Close(); //断开数据库联接
    }
      

  4.   

    CREATE PROCEDURE Verrifypwd
    (
      @username Varchar(20),
      @password Varchar(20)
    )
    AS
      DECLARE @founduser Varchar(20)  Select @founduser = username
        From usertable
        WHERE username = @username
        AND userpwd = @password  IF @founduser IS NOT NULL
        Return 0
      ELSE 
        IF Exists( SELECT username From usertable Where username = @username )
          Return 2
        Else
          Return 1