首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组合框组合器

组合框组合器
EN

Stack Overflow用户
提问于 2011-03-02 09:08:28
回答 2查看 95关注 0票数 0

我有一张有三个组合盒的表格。组合框的值生成带有3个参数的SQL查询。SQL生成一个RDLC报告。

例如:

带值的Combox1 (v1,v2,v3,ALL)

带值的Combox2 (v1,v2,ALL)

具有值的Combox3 (v1,v2,v3,4,ALL)

代码语言:javascript
复制
Me.ExampleTableAdapter.QueryWithParams(Me.ExampleDataSet.Table, Combobox1.SelectedIndex, Combobox2.SelectedIndex,Combobox1.SelectedIndex)

QueryWithParams:

代码语言:javascript
复制
SELECT * FROM Table WHERE Column1=@c1 AND Column2=@c2 AND Column3=@c3

好的,问题是当所选的值都在组合体X中时,我无法得到值,因为我必须更改查询并踢出参数。例如:如果combo1、combo2、combo3都有值。我不需要参数。

代码语言:javascript
复制
SELECT * FROM Table 

如果combo1是全部。

代码语言:javascript
复制
SELECT * FROM Table WHERE Column2=@c2 AND Column3=@c3

如果combo1和combo3都是

代码语言:javascript
复制
SELECT* FROM Table WHERE Column2=@c2 

..。然后在代码中查看组合体的选定值,然后在其上执行查询。

有没有一种方法可以不生成所有的8类型的查询就完成这件事?

PS。我不能使用存储过程,因为我使用的是Server契约

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-02 09:14:47

如果“ALL”的值应该发送到值'NULL‘的查询中

代码语言:javascript
复制
SELECT * 
FROM Table 
WHERE (Column1=@c1 OR @c1 IS NULL)
AND (Column2=@c2 OR @c2 IS NULL)
AND (Column3=@c3 OR @c3 IS NULL)

编辑:当然,对于任何指定的'ALL‘-值示例’ALL‘= -1,也可以这样做。

代码语言:javascript
复制
(Column1=@c1 OR @c1 = -1)
票数 1
EN

Stack Overflow用户

发布于 2011-03-02 09:17:19

在查询未选择任何/全部内容的列时,应该可以使用IsNull:

代码语言:javascript
复制
WHERE Column1 = ISNULL(@c1, Column1)

MSDN

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5165375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档