CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

如何实现组合查询,,谢谢

楼主ykui(城市星空)2006-03-06 12:00:29 在 Delphi / 数据库相关 提问

我想在查询中实现组合查询:有员工编号edit1,姓名:edit2,部门:combobox1等,有个button1,有个dbgrid1,实现查询,edit1,edit2,combobox1,以上全选,或者,选几个,都能实现查询??  
  代码该怎么写,,假如ado是:adoquery1,datasource1,  
  我是这样写的,buttononclick事件;  
  var   str:string;  
  begin  
  str:='select   *   from   adoquery1   where   ';  
  if   edit1.text<>''   then  
  begin  
      str:=str+'   ygbh=edit1.text   ';  
  end;  
    if   edit2.text   <>''   then  
  begin  
      str   :=str+'   xm   =edit2.text';  
  end;  
    if   combobox1.text   <>   ''   then  
  begin  
      str   :=str+'   bm=   combobox1.text   ';  
  end;  
  with   adoquery1   do  
  close;  
  sql.clear;  
  sql.add(str);  
  open;  
  end;  
   
  我知道以上这样写不对,,会错,,我只想,大虾们,,教小第,以上的功能该怎么实现!!谢谢!! 问题点数:20、回复次数:10Top

1 楼chb5210(沉默)回复于 2006-03-06 12:32:11 得分 20

var   str:string;  
  begin  
  str:='select   *   from   adoquery1   where     ';  
  if   edit1.text<>''   then  
  begin  
      str:=str+'     ygbh='+Quotedstr(edit1.text)+'     AND     ';  
  end;  
    if   edit2.text   <>''   then  
  begin  
      str   :=str+'     xm='+Quotedstr(edit2.text)+'     AND     ';  
  end;  
    if   combobox1.text   <>   ''   then  
  begin  
      str   :=str+'     bm='+Quotedstr(combobox1.text)+'     AND     ';  
  end;  
  str:=str+'   1=1'     //   这里是防止你没有选择任意一个  
  with   adoquery1   do  
  close;  
  sql.clear;  
  sql.add(str);  
  open;  
  end;  
  Top

2 楼chb5210(沉默)回复于 2006-03-06 12:33:22 得分 0

str:=str+'   1=1';     //   不好意思,少打了个分号Top

3 楼ykui(城市星空)回复于 2006-03-06 13:49:27 得分 0

str:=str+'   1=1';     请问:   1=1   是什么意思啊,能具体点吗,,小第是菜鸟,知道的不是很多,谢谢!Top

4 楼Corn1(玉米)回复于 2006-03-06 13:54:02 得分 0

where   1=1   and   条件一   and   条件二……  
  这样就不会错了。  
  像你原来写的那样,第一个条件就是必选的。如果加个1=1,每个条件都是可选的。Top

5 楼chb5210(沉默)回复于 2006-03-06 13:55:45 得分 0

Corn1(玉米)   (   )    
   
  就是他说的这个意思  
  如果你不要   1=1   那你前面就必须有一个要选,否则就有错Top

6 楼ykui(城市星空)回复于 2006-03-06 14:54:10 得分 0

Quotedstr()     这个是什么意思啊,谢谢了,Top

7 楼chb5210(沉默)回复于 2006-03-06 15:11:24 得分 0

代表一对单引号   还可以用   char(39)+edit1.Text+char(39)来代替Top

8 楼ykui(城市星空)回复于 2006-03-07 16:01:53 得分 0

问题解决了,怎么给分啊??Top

9 楼chb5210(沉默)回复于 2006-03-07 18:08:23 得分 0

点   管理  
  输入你的密码,要给分的人那里,给分值,就可以了Top

10 楼lswcl123(lswcl123)回复于 2006-03-07 23:52:29 得分 0

1=1   这个条件好,很多时候需要这个得Top

相关问题

  • 如何实现条件组合查询
  • 问:如何实现组合查询?
  • 如何实现模糊组合查询????
  • 如何实现组合条件的查询?高分征答!
  • 如何实现select的组合查询,在线等待!!!
  • 如何实现多条件组合查询?
  • 如何组合查询
  • table怎么实现组合查询?
  • 实现ADOQuery任意组合查询
  • 如何实现ASP多表查询?

关键词

  • 查询
  • sql
  • thenbegin
  • 谢谢
  • quotedstr
  • edit
  • adoquery
  • combobox
  • 实现
  • str

得分解答快速导航

  • 帖主:ykui
  • chb5210

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo