procedure TLoginfrm.bkOKClick(Sender: TObject);
 begin
  if not StudentDM.LoginADOQR.Active then //如果数据库没有打开,则打开数据库
    StudentDM.LoginADOQR.Active:=true;
  if (not StudentDM.LoginADOQR.Locate('UserID',trim(UserIDEdt.Text),[]))
    or (StudentDM.LoginADOQR.FieldByName('Password').AsString <> Trim(PasswordEdt.Text)) then
    begin
      Edit1.Text:=trim(StudentDM.LoginADOQRUserID.AsString);
      Edit2.Text:=trim(StudentDm.LoginADOQRPassword.AsString);
      Application.MessageBox('账号或密码错误','提示信息',MB_ICONWarning);
      UserIDEdt.SetFocus();
      exit;
    end
  else
    Application.Terminate();
end;
数据表UserID,Password,里面有个用户名和密码都是admin
我做好了一个登陆界面,连接好了数据库,写好了SQL语句,但是不管了账户和密码是否正确总是进入MessageBox模块........Edit1和Edit2是我为了跟踪数据表指针建立的...里面都能读出数据表中的admin
我把这段
or (StudentDM.LoginADOQR.FieldByName('Password').AsString <> Trim(PasswordEdt.Text))
去掉后,在UserIDEdt中输入admin,能正确登陆...经过测试好像就是这句的问题了...但是我觉得这里毫无问题啊?这个是为什么啊?

解决方案 »

  1.   

    if (not StudentDM.LoginADOQR.Locate('UserID',trim(UserIDEdt.Text),[]))
      then
       if (StudentDM.LoginADOQR.FieldByName('Password').AsString <> Trim) then(PasswordEdt.Text))
        begin
          Edit1.Text:=trim(StudentDM.LoginADOQRUserID.AsString);
          Edit2.Text:=trim(StudentDm.LoginADOQRPassword.AsString);
          Application.MessageBox('账号或密码错误','提示信息',MB_ICONWarning);
          UserIDEdt.SetFocus();
          exit;
        end
      

  2.   

    修改字段名字为PWD试试,
    好象password跟关键字冲突
      

  3.   

    我怀疑StudentDM.LoginADOQR.FieldByName('Password').AsString <> Trim(PasswordEdt.Text)) 的时候,还没有Locate到正确的记录去,所以这里总为Ture;
    你分开写吧
    if not StudentDM.LoginADOQR.Locate('UserID',trim(UserIDEdt.Text),[]))
      then
       if (StudentDM.LoginADOQR.FieldByName('Password').AsString <> Trim(PasswordEdt.Text)) then
        begin
          Edit1.Text:=trim(StudentDM.LoginADOQRUserID.AsString);
          Edit2.Text:=trim(StudentDm.LoginADOQRPassword.AsString);
          Application.MessageBox('账号或密码错误','提示信息',MB_ICONWarning);
          UserIDEdt.SetFocus();
          exit;
        end
      

  4.   

    改Password为UserPWD后.......再进行验证........还是同样的错误.......
    我用VB做了一个登陆界面连接没有任何错误.............
    到底为什么呀......我都要死了..........
    用Access和 ADOTable进行连接也没有错误的.....
      

  5.   

    chenzhuo(Jack Chen)
    你的是对的.........我成功了........谢谢了~~~~~~~~你说的意思我明白~~~太感谢了......