if((trim(LoginName.Text)=trim(adoTable2.FieldValues['AID']))
      and
      (trim(LoginPsw.Text)=trim(adoTable2.FieldValues['Apwd'])))
       then
        begin
         form1.Hide;
         form2.Show;
        end
         //这里应该怎么改?
          repeat
         adotable2.Next;
         until
          adoTable2.FieldValues['AID']=nil;

解决方案 »

  1.   

    不是遍历字段,是遍历记录吧loginok:boolean=false;
    with adoquery do
    begin
      sql.clear;
      sql.add('SELECT * FROM Users where username=:user');
      parameters.parambyname('AID').value=LoginName.Text;
      open;
      first;
    end;  while not adoquery.eof do
    begin
      if adoquery.FieldByName('APWD').asstring=LoginPsw.Text then
        loginok:=true
      adoquery.next;
    end;if loginok then
      //登录成功
    else
      //失败
      

  2.   

    遍曆所有字段
     var
       i : integer; for i := 0 to qry.fieldcount-1 do showMessage(qry.fields[i].name) ;  //  這叫所有字段你要是遍曆數據:with Qry do while not eof do 
    begin
      next 
    end; 還有你的代碼不明白意思。
      

  3.   

    我意思是做一个登陆框,不同用户名和密码登陆后窗体不同,现在出现出现0个或多个窗体,大家帮看下咋回事?
    procedure TForm1.LoginClick(Sender: TObject);
    VAR
     //定义一个常量判断
     i:integer;
    begin
      //root用户
         if((trim(LoginName.Text)=trim(adoTable1.FieldValues['Rootname']))
         and
         (trim(LoginPsw.Text)= trim(adoTable1.FieldValues['Rootpwd'])))
         then
          begin
             form1.Hide;
             form2.Show;
         end;
         //admin 用户
    while not adotable2.Eof do
    begin
      if ((adotable2.FieldByName('AID').asstring=trim(LoginName.Text))
      and (adotable2.FieldByName('Apwd').asstring=trim(LoginPsw.Text)))
       then
        i:=0;
      adotable2.Next;
    end;
      if
        (i=0)
      then
       begin
        form1.Hide;
        form3.Show;
       end;
       //reader用户
    while not adotable3.Eof do
    begin
      if ((adotable3.FieldByName('Rname').asstring=trim(LoginName.Text))
      and (adotable3.FieldByName('Rno').asstring=trim(LoginPsw.Text))) then
        i:=1;
      adotable3.Next;
    end;
      if(i=1)
      then
       begin
        form1.Hide;
        form4.Show;
       end;
    end;