如何实现复杂动态查询?

aspawan 2006-04-20 12:46:58
我在做一个学生管理系统,用vb2005&sql server
不知如何实现动态复杂查询~
比如:combobox显示表的列名,任意选择一个列名,然后另一个combobox显示条件(大于,小于。。。),textbox写要查询得值,然后另一个combobox选择逻辑关系(与,或。。。)。
下面还能继续添加上述条件。
我该怎么生成sql语句?该怎么执行此sql。
...全文
144 10 点赞 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
web700 2006-04-20
sql server 2000 存储过程与xml编程 这个书里就有详细的介绍,我昨天刚看了.
  • 打赏
  • 举报
回复
jwt1982 2006-04-20
哦,发现漏一个值了

首先定义一个

dim strSql as string

strSql="select * from tablename where "

for i=1 to colcount

strsql=strSql+comboboxCol.text+textbox.text+comboboxANDOR.text
next i
  • 打赏
  • 举报
回复
jwt1982 2006-04-20
再来,呵呵,编程基础问题

首先定义一个

dim strSql as string

strSql="select * from tablename where "

for i=1 to colcount
strsql=strSql+comboboxCol.text+comboboxANDOR.text
next i

执行strSql就可以了

呵呵仅仅是一个类似的说明
  • 打赏
  • 举报
回复
撸大湿 2006-04-20

......


俺真失败
  • 打赏
  • 举报
回复
sunxy5291 2006-04-20
是呀
我也看不懂!
  • 打赏
  • 举报
回复
aspawan 2006-04-20
看不懂~!
  • 打赏
  • 举报
回复
撸大湿 2006-04-20
不同类型的列,写法有所不同

组合SQL语句前,首先确定每个列的类型
  • 打赏
  • 举报
回复
撸大湿 2006-04-20
select @sql=@sql+case @where when '' then '' else ' where '+ @where end
  • 打赏
  • 举报
回复
撸大湿 2006-04-20
楼主要判断一下列名改列类型

CHAR写法

declare @comTBNAME VARCHAR(100),--表
@comFD varchar(100),--列
@comLF varchar(100),--条件
@comAO varchar(100),--AND || OR
@TXT varchar(100) --字段

declare @sql varchar(8000)
declare @Where varchar(8000)
select @sql='',@where=''
select @sql='select * from '+@comTBNAME+' '
,@Where =@Where+ (case isnull(@comFD,'') when '' then ''
else @comAO +' '+ @comFD +' '+@comLF+ ' '''+@TXT+''''
end)

-----------------
select @sql=@sql+case @where when '' then '' else @where end
  • 打赏
  • 举报
回复
itblog 2006-04-20
这里编程最基本的啦~

大概是这样:
dim sql
sql="select * from 表 where 1=1"
if trim(combobox.text)<>"" then
sql=sql&" and "&combobox取的字段值&取到的罗辑值&textbox的值
end if

然后再跟上面一样,判断其它的,不为空,就加上条件。
  • 打赏
  • 举报
回复
相关推荐
发帖
疑难问题
加入

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2006-04-20 12:46
社区公告
暂无公告