2013-10-17 80 views
0
SELECT * FROM [License] WHERE ([LicenseID] = @LicenseID) 

這是我放置在中繼器sqldatasource.If代碼我在文本框中鍵入許可證ID 1,我可以看到連接到中繼器中許可證ID 1的值。直放站控制搜索

如何在sqldatasource中放置if語句,以便在頁面加載時,我可以在轉發器中查看錶格許可證的所有詳細信息,並且如果在文本框中鍵入許可證ID後按下搜索按鈕,則值將顯示特定的許可證ID。

謝謝編輯蔭想你說Gurdien的方式,但

SELECT * FROM License WHERE (0 = @selectAll OR [email protected]) -> Not working 

    SELECT * FROM License WHERE (0 = @selectAll) ->working 

    SELECT * FROM License WHERE ([email protected])-> working 

在頁面加載我想告訴所有的領域和對我wnat表明具體細節licenceid在文本框中鍵入licenseid。

+0

如果你使用一個,你至少應該顯示你的sqldatasource控件。否則,我只是建議刪除過濾器,如果它不是回發。 –

回答

0

使用這樣

SqlDataSource1.SelectParameters["LicenseID"].DefaultValue="*"; 

你的頁面加載。

,並確保你寫這裏面!ispostback

類似問題上的SO: - sqldatasource default value

0

我相信還會有各地的其他方式這一點,但是這是我能想到的最接近的。

首先,修改您的查詢像這樣...

SELECT * FROM License WHERE ([LicenseID] = @LicenseID OR 1 = @selectAll)

然後,在某個頁面內,通過從工具箱拖動創建一個隱藏字段。
將第二個參數的來源@selectAll設置爲該隱藏字段的值。將參數屬性的默認值設置爲1.
每當用戶單擊「搜索」按鈕時,將隱藏字段的值設置爲0或您喜歡的任何值。
我確定您將參數來源@LicenseID設置爲文本框的值。

我想你已經明白了這一點。
默認情況下,您的查詢看起來像這樣...

SELECT * FROM License WHERE ([LicenseID] = '' OR 1 = 1)

所以,即使有不LicenseID = ''任何值,條件1 = 1將始終返回true。所以,你會從表中獲得所有的數據。
當輸入到文本框中的用戶,隱藏字段的值將變爲,讓我們說,0,您的查詢就會變成這個樣子......

SELECT * FROM License WHERE ([LicenseID] = '00112233' OR 1 = 0)

儘管第二個條件,1 = 0將返回false,其餘查詢將根據您輸入的LicenseID的值,根據您的值進行相應的工作。

您可以將隱藏字段值設置回1,當用戶清除文本框或單擊某些復位按鈕。這樣,查詢將重置爲選擇所有模式。

祝你好運......!