2011-03-02 42 views
0

我有一个带有3个组合框的窗体。组合框的值用3个参数生成一个SQL查询。 SQL生成一个RDLC报告。Combobox combinatorics

例如:

Combox1与值(V1,V2,V3,ALL)

Combox2与值(V1,V2,ALL)

Combox3与值(V1,V2,V3 ,4,ALL)

Me.ExampleTableAdapter.QueryWithParams(Me.ExampleDataSet.Table, Combobox1.SelectedIndex, Combobox2.SelectedIndex,Combobox1.SelectedIndex) 

QueryWithParams:

SELECT * FROM Table WHERE [email protected] AND [email protected] AND [email protected] 

好吧,问题是当组合X中选定的值是ALL时,我无法获取值,因为我必须更改查询并踢出参数。例如: 如果combo1,combo2,combo3的值为ALL。我不需要参数。

SELECT * FROM Table 

如果combo1是ALL。

SELECT * FROM Table WHERE [email protected] AND [email protected] 

如果COMBO1和combo3都

SELECT* FROM Table WHERE [email protected] 

... 然后在代码中,我看这是组合的选择和价值在其我做的查询。

有没有办法让我做这件事没有产生全部 8种查询类型?

PS。 当然同样可以是:因为我使用的SQL Server Compact

回答

0

你应该是一个BLE在查询中的列使用ISNULL这里没有/所有选择:

WHERE Column1 = ISNULL(@c1, Column1) 

MSDN