delphi 中如何用 sql语句中like实现复选框的查询功能(模糊)

用CHECKBOX这个控件怎么写程序呢?按以下代码写的程序出现的问题是:只要是查询项,无论选没选,在数据库中是空的记录都查不出来。谢谢!procedureTForm19.... 用CHECKBOX这个控件怎么写程序呢?按以下代码写的程序出现的问题是:
只要是查询项,无论选没选,在数据库中是空的记录都查不出来。谢谢!
procedure TForm19.Button3Click(Sender: TObject);
var YBXH,WH,YBMC,QH,CDMC,......:string;
begin
YBXH:='%';WH:='%';QH:='%';CDMC:='%';TUNIT:='%';YBMC:='%';
......
if CheckBox1.Checked=true then YBXH:=edit3.Text;
if CheckBox2.Checked=true then WH:=edit27.Text;
if CheckBox3.Checked=true then YBMC:=wwDBLookupCombo5.text;
......
WITH wwQuery1 DO
begin
close;
sql.clear;
sql.Add('select * from ybtz');
sql.add('where YBXH like :YBXH and WH like :WH and YBMC like :YBMC and QH like :QH ');
sql.add(' and GGLC like :GGLC and LB like :LB and GLZT like :GLZT and CDMC like :CDMC and UNIT like :TUNIT and SX like :SX');
sql.Add('order by WH,YBMC');
paramByName('YBXH').asstring:='%'+YBXH+'%';
paramByName('WH').asstring:='%'+WH+'%';
......
open;
end;
展开
 我来答
cd...e@gmail.com
2011-01-11
知道答主
回答量:22
采纳率:0%
帮助的人:9万
展开全部
sql.add(' and GGLC like :GGLC and LB like :LB and GLZT like :GLZT and CDMC like :CDMC and UNIT like :TUNIT and SX like :SX');
改为
sql.add(' and isnull(GGLC,"") like :GGLC and isnull(LB,"") like :LB and isnull(GLZT,"") like :GLZT and isnull(CDMC,"") like :CDMC and isnull(UNIT,"") like :TUNIT and isnull(SX,"") like :SX');
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
suetrain
2011-01-11 · TA获得超过178个赞
知道小有建树答主
回答量:244
采纳率:100%
帮助的人:187万
展开全部
procedure TForm19.Button3Click(Sender: TObject);
var YBXH,WH,YBMC,QH,CDMC,......:string;
begin
YBXH:='%';WH:='%';QH:='%';CDMC:='%';TUNIT:='%';YBMC:='%';
......
if CheckBox1.Checked=true then YBXH:=YBXH+trim(edit3.Text);
if CheckBox2.Checked=true then WH:=WH+trim(edit27.Text);
if CheckBox3.Checked=true then YBMC:=YBMC+trim(wwDBLookupCombo5.text);
......
WITH wwQuery1 DO
begin
close;
sql.clear;
sql.Add('select * from ybtz ');
sql.add('where YBXH like :YBXH and WH like :WH and YBMC like :YBMC and QH like :QH ');
sql.add(' and GGLC like :GGLC and LB like :LB and GLZT like :GLZT and CDMC like :CDMC and UNIT like :TUNIT and SX like :SX');
sql.Add('order by WH,YBMC');
paramByName('YBXH').asstring:=YBXH+'%';
paramByName('WH').asstring:=WH+'%';
......
open;
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ayasefan
2011-01-10 · 超过19用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:48.3万
展开全部
procedure TForm1.Button1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0:
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 表 where 字段 like '+''''+trim(edit1.Text)+'''');
end;
1: //同理

end;

end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rcx200828
2011-01-11
知道答主
回答量:4
采纳率:0%
帮助的人:6789
展开全部
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 表 where 字段 like %'+edit1.text+'%');
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式