2011-03-02 46 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