我想实现用户名的模糊查询
就是,只输入一部分名称,查出所有包含有这些字段的用户名;
我写了个语句,但是不行
TADODataSet1.commendtext:='select * from yhda where hm like '%'+''''+str+''''+'%'';
注:
yhda:是含有用户名的表;
hm:用户名
str;是我要输入的字符串;
但是,提示我出错了:
lllegal character in input file:'%'
难道是delphi不认'%'吗?

解决方案 »

  1.   

    TADODataSet1.commendtext:=
    'select * from yhda where hm like ''%'+str+'%''';
      

  2.   

    你在加单引号时出错了,其实在加单引号时你可以用quotedstr函数来代替,这样就不会出错。上面的语句改为:
    TADODataSet1.commendtext:='select * from yhda where hm like quotedstr('%'+str+'%');
      

  3.   

    我还以为delphi不认识'%'
    这个符号,和和
      

  4.   

    如果弄不清楚单引号的处理,最好用参数:
    TADODataSet1.commendtext:='select * from yhda where hm like  :aa';
    TADODataSet1.paramsp[0].value:='%'+str+'%';
    这样比较好
      

  5.   

    用FindKey方法试一下吗!(如果查询不是太复杂的话)。
      

  6.   

    TADODataSet1.commendtext:='select * from yhda where hm like '+quotedstr('%'+str+'%');
      

  7.   

    TADODataSet1.commendtext:='select * from yhda where hm like ''%'+str+'%''';