procedure TForm1.Button2Click(Sender: TObject);
begin
 with datamodule2.ADOQuery1 do
 begin
 sql.Clear;
 sql.Add('select  * from aaa where name=:name' );
 parameters.ParamByName('name').Value:=combobox1.Text;
 open;
 if fieldbyname('pws').Value=edit1.Text then
 begin showmessage('成功');
 end
 else
begin
 showmessage('失败');
 end;
 end;
 end;
结果我无论是输入什么密码,都是对的!成功的!帮帮我呀!

解决方案 »

  1.   

    從你的代碼看不出什麼問題啊!你可直接用
    select * from aaa where [name]=:name and [pws]=:pws
    這樣, 檢查有沒有記錄返回
      

  2.   

    好象没有什么问题。或者就是在clear前先close
      

  3.   

    with datamodule2.ADOQuery1 do
     begin
     Active:=False;
     sql.Clear;
     sql.Add('select  * from aaa where name=:QName' );
     parameters.ParamByName('QName').Value:=combobox1.Text;
     open;
     if (RecordCount=0) then 
      begin
       ShowMessage('失败');
       Exit;
      end; if fieldbyname('pws').Value=edit1.Text then
         showmessage('成功')
      else
         showmessage('失败');
    end;