首页 文章

Delphi中的数据库用户名和密码?

提问于
浏览
2

我想在Delphi中创建一种登录窗口 . 不幸的是我无法让它与用户名和密码相匹配 .

我有一个基本的.mdb数据库,带有Users表 . 在此表中,有一个用户名和密码 . 我希望Delphi检查数据库中的用户名和密码,如果它与编辑框中的用户名和密码匹配,它会转到下一个表单或显示一条消息,否则它什么都不做 . 当我输入数据库的第一行,用户名和密码值时,我获得了成功,但是第二行,没有 . 我觉得我需要一种方法让它继续前进到第二行值并检查它们等等 . 目前数据库中也没有任何关系 .

这是我的数据访问布局:ADOConnection - > ADOTable - > DataSource

提前致谢!

1 回答

  • 1

    根据您的猜测,一种解决方案可以是逐个记录来检查每一个 . 例:

    function MatchPass(Table: TADOTable; const Name, Pass: string): Boolean;
    begin
      Result := False;
      Table.First;
      while not Table.Eof do begin
        if Table.FieldByName('Username').AsString = Name then begin
          Result := Table.FieldByName('Password').AsString = Pass;
          Exit;
        end;
        Table.Next;
      end;
    end;
    

    可以像:

    if MatchPass(ADOTable1, Edit1.Text, Edit2.Text) then
        ..
    

    另一个解决方案是让ADOTable搜索相应的记录:

    function MatchPass(Table: TADOTable; const Name, Pass: string): Boolean;
    begin
      Result := Table.Locate('Username;Password', VarArrayOf([Name, Pass]), []);
    end;
    

相关问题