关于adoquery的模糊查询 (50分)

  • 主题发起人 主题发起人 cnbobo
  • 开始时间 开始时间
C

cnbobo

Unregistered / Unconfirmed
GUEST, unregistred user!
请大家看看
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Append('Select * from picture where 名称 like :Name');
ADOQuery1.Parameters.ParamByName('Name').Value:='%'+edit2.Text+'%';
ADOQuery1.Open;
找不到记录,也不报错。
ADOQuery1.Parameters.ParamByName('Name').Value:=''''+'%'+edit2.Text+'%'+'''';
ADOQuery1.Parameters.ParamByName('Name').Value:='"'+'%'+edit2.Text+'%'+'"';
换成这两个也是一样,找不到记录,也不报错。
我的数据库是sqlserver2000
谢谢大家帮帮忙,我头都大了,已经两天了,论坛也找遍了。

 
語法上沒什么錯啊﹖查查別的原因嘛﹐你不用like﹐直接寫一個值看看有沒有查到數﹖試一
下就知道該怎么做了﹗
 
ADOQuery1.Parameters.ParamByName('Name').Value:='%'+edit2.Text???'%';
打上???的地方是不是少了一个+号?后面的也一样。
 
''''+'%'+edit2.Text'%'+'''';//error
''''+'%'+edit2.Text+'%'+''''//ok!
__________好象也不对。
.Value:='%'+edit2.Text+'%'//就行了
 
在程序里有+,在这我漏写了;
ADOQuery1.Parameters.ParamByName('Name').Value:='%'+edit2.Text+'%';
ADOQuery1.Parameters.ParamByName('Name').Value:=''''+'%'+edit2.Text+'%'+'''';
ADOQuery1.Parameters.ParamByName('Name').Value:='"'+'%'+edit2.Text+'%'+'"';
我试了这三都不行
 
to:hgood:
不用like,用=能查到数据
 
我有一个建议
不要用参数了!!
直接这样吧:
ADOQuery1.SQL.Append('Select * from picture where 名称 like '+''''+'%'+edit2.Text+'%'+'''');
我就是这样做的 没有问题啊
 
多人接受答案了。
 
我同意 Alpinist的,在用SQL模糊查询时,要用到 '% ? 和在access中不同
 
看看edit2.text 里面有没有特殊字符 像 [ ] ^ 等等
 
to karxios:
如果有那些特殊字符会怎么样?
呵呵 我是菜鸟啊[:)]
 
后退
顶部