我做一个datamodal1,内放adotable1,adoquery1,连接数据库
我想要在登录窗口中输入用户名和密码跟数据库中的数据据比较来判断是否正确,“确定”按钮的程序如下:
var
   username,userpass:string;
begin
   username:=trim(edi_name.text);
   userpass:=trim(edi_name.text);
   datamodal1.adoquery1.sql.clear;
   datamodal1.adoquery1.sql.text:='select f_name,f_mima from yonghu    
                                  where f_name=:name and f_mima=:pass';
   datamodal1.adoquery1.params[0].asstring:=username;
   datamodal1.adoquery1.params[1].asstring:=userpass;
   datamodal1.adoquery1.prepared;
   datamodal1.adoquery1.open;
   if datamodal1.adoquery1.isempty then
      modalresult:=mrok
   else
      begin
      showmessage('用户名或密码错误请重新输入!’);
      modalresult:=mrcancel;
      end;
end;
为什么这段程序总是在datamodal1.adoquery1.params[0].asstring:=username;这行出错呢?

解决方案 »

  1.   

    你用:
    datamodal1.adoquery1.parameters.parambyname[1].value:=userpass;
    datamodal1.adoquery1.parameters.parambyname[name].value:=username
    試一下!
      

  2.   

    params是adoquery1的属性为什么不能用呀,系统也不给提示。
      

  3.   

    ADO一般要加query1.parameters.parambyname().value :=....
    這是它的規範.
      

  4.   

    query.params[0].asstring:=username;正确。
    adoquery.params[0].asstring:=username;错误。
    adoquery.parameters.parambyname().value:=username;正确。
    adoquery必须这么用吗?
    adoquery和query的用法是不一样是吗?
    我只是想确定一下。因为这人比较心细谢谢