2017-07-28 64 views
0

我確定這很容易,但是我畫了一個空白。我有5個文本框用於搜索。如果填充TextBox1然後填充GridView1,GridBox2 for GridView2等。然後我有4個更多的GridViews可以填充,如果只是TextBox1或只是TextBox2填充,但也填充,如果兩者都填充。另一個GridView將基於1或3個正在填充的文本框來填充。基於填入的1個或多個字段的查詢

是否有其他方法,而不是開關或500如果場景編寫基於填充1到3搜索字段填充GridView?

+0

你應該更具體一點,並顯示的SQL代碼和/或ASP一個例子.net代碼。 – Nino

+0

@Nino好吧,讓我們看看一個GridView。 5個搜索框:CompanyID,CustomerNumber,LocationID,MarketerNumber和MeterNumber。如果CustomerNumber是唯一填充的框,或LocationID或MarketerNumber,則可以填充此GridView。如果客戶編號和位置ID或客戶編號和市場營銷商編號或位置標識和營銷商編號也可以填充它。簡而言之,取決於填充的搜索/過濾器的數量,7個不同的數據集。 – toadfromgrove

回答

0

在這種情況下,我通常會定義一個具有多個輸入參數的特定搜索查詢,它會檢查每個參數是否有值。

例如

-- This part only if you use ODBC connection, it you use SQL Client connection you don't need it 
declare @CompanyID int 
declare @CustomerNumber int 
declare @LocationID int 
declare @AnotherFilter varchar(100) 

SELECT @CompanyID=?, @CustomerNumber=?, @LocationID=?, @AnotherFilter=? 

-- End ODBC specific 

SELECT * 
FROM Your_table 
WHERE 
([email protected] OR @CompanyID=0) 
AND 
([email protected] OR @CustomerNumber=0) 
AND 
([email protected] OR @LocationID=0) 
AND 
([email protected] OR @AnotherFilter='') 

你可以把這個在你的SqlDataSource或ObjectDataSource控件爲GridView(S)

+0

這是假設他們填寫每個文本框。假設他們不填寫LocationTextBox,那麼WHERE子句的AND將不會返回任何內容。 – toadfromgrove

+0

您將GridView與ObjectDataSource鏈接起來,在此引用一種方法,您可以在其中測試參數並將默認值傳遞給tue查詢 –