如何实现复杂动态查询?

aspawan 2006-04-20 12:46:58
我在做一个学生管理系统,用vb2005&sql server
不知如何实现动态复杂查询~
比如:combobox显示表的列名,任意选择一个列名,然后另一个combobox显示条件(大于,小于。。。),textbox写要查询得值,然后另一个combobox选择逻辑关系(与,或。。。)。
下面还能继续添加上述条件。
我该怎么生成sql语句?该怎么执行此sql。
...全文
166 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

然后再跟上面一样,判断其它的,不为空,就加上条件。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧