代码如下,数据库里确实有这条记录,可就是查不出来,update语句也不行,是参数没起作用吗?adoQuery.close;
adoQuery.sql.clear;
adoQuery.sql.add('select * from userinfo where name=:name');
adoQuery.Parameters.ParameterByName('name').value := 'admin';//拼写可能有误
adoQuery.open;

解决方案 »

  1.   

    请问你这个查不出是什么情况呢?是Open后提示错误还是Showmessage(inttostr(ADOQuery1.RecordCount))提示'0'?
    建议检查下ADOQuery的连接是否正确,确保name=:name没有空格符,确定'admin'正确……
      

  2.   

    你不用条件,将数据查询出来后,移动记录到该笔记录,然后比较下它的值(我怀疑它前后有空格),或利用语句比较:
      if ADOQuery.FieldByName('admin').AsString='admin' then
        showmessage('值相同')
      else
        showmessage('值不相同')。查询这样的数据,可以不使用参数,直接拼:  ADOQuery.Close;
      ADOQuery.SQL.Text:='select * from userinfo where name = '+QuotedStr('admin');
      ADOQuery.Open;如果这样不能查询到那记录,说明不是语句问题,而是数据不等于'admin'。
      

  3.   

    条件不满足就查不出来,仔细看看到底是不是admin
    在查询分析器中执行试试ParameterByName->ParamByName