我創建了一個ASP.NET網頁用C#和SQL Server 2014SQL查詢不會顯示所有記錄,如果機器人性判據爲空或「」
我有一個GridView1
有SqlDataSource
具有SELECT
與查詢網頁上控件的2個標準。
兩者都是具有Decimal(18,0)
值的DropDownLists。
我想設置一個WHERE
條款,這樣的GridView將返回:
- 所有記錄,如果這兩個條件爲空或
- 如果條件之一滿足,節目記錄只用這個標準,其他標準爲空或
- 如果這兩個條件都滿足,同時使用標準
某種級聯濾波器的演出紀錄。
我想這(在頁面加載):
if (!Page.IsPostBack)
{
GridView1.DataBind();
}
DropDownList1
和DropDownList2
同時設置:
AppendDataBoundItems="True" and <asp:ListItem Text="" Value="" />
因此DDL控件不包含在頁面加載的任何值或文本。
在這種情況下,我預計GridView1
顯示我所有的記錄 - 但它什麼也沒有顯示。
SQL查詢語句是:
SELECT....
WHERE
([rentnr] = @rentnr) AND ([apartman] = @apartman)
OR ([apartman]= @apartman) AND (@rentnr IS NULL)
OR ([rentnr] = @rentrn) AND (@apartman IS NULL)
OR (@rentnr IS NULL) AND (@apartman IS NULL)
@rent
是數據從DDL1@apartman
從DDL2
是數據我在做什麼錯?
我感謝您的幫助,謝謝。
有趣。我再次看到'([apartman] = @apartman)和(@rentnr IS NULL)'。提醒一下,如果使用像這樣的查詢,您可能會遇到錯誤的查詢計劃。使用動態查詢可以避免這個問題。請參閱kimberly的博客關於此:http://www.sqlskills.com/blogs/kimberly/high-performance-procedures/ – zhongxiao37
嗨馬克,謝謝你的建議。英語不是我的母語,所以我的語法很差,因爲我很匆忙,我的文本是一樣的。編程是我的愛好,我是初學者,使用谷歌搜索和翻譯自學。所以,請諒解我的立場。我很樂意學習,並感謝您的幫助。感謝您的鏈接,我會閱讀它。此外,我創建了一個新的gridview並只設置了一個條件 - dropdownlist的值爲null或者只是空字符串。如果dropdownlist沒有任何價值,我又不能顯示所有記錄。 – jastog