procedure TForm1.Button1Click(Sender: TObject);
begin
  with Table1  do
  begin
    Open;
    SetKey;
    FieldValues['username']:=Edit1.Text;
    if GotoKey then
        ShowMessage('登录成功')
        else
        ShowMessage('登录失败');
  end;
end;
为什么总是登录失败,字段名是对的,edit输入的内容也是username下存在的记录,我真的想不通

解决方案 »

  1.   

    SetKey 和 GotoKey 代码没贴出来,怎么知道为什么登录失败。
      

  2.   

    建议改用TQuery + SQL语句来判断
      

  3.   

    我也是初学者, trim(Edit1.Text;)试试
      

  4.   

    trim 简单好用。
      

  5.   

    可以这么来,用TQuery.SQLText='Select count(*) From Table1 where userid = :id and password = :pwd ';
    TQuery.ParaByname(':id'):=id号
    TQuery.ParaByname(':ipwd):=密码
    用参数化查询,避免sql注入
    同时直接判断返回结果,避免频繁的数据库查询操作。
      

  6.   

    你单步跟踪一下 GotoKey 里面的代码就明白为什么了。