2014-01-17 88 views
0

我剛剛從C#開始,我仍然在學習這些東西。我嘗試使用從選擇框填充的多個WHERE子句顯示數據。 我發現問題if(Request.QueryString [「...」]。IsEmpty())使用多個選擇框從WebMatrix中的SQL數據庫顯示數據

這隻適用於第一個選擇框。如果選中該框,則所有下一個框選擇被省略。如果第一個框未被選中,則不顯示數據。我如何解決這個問題?

這裏是我的代碼:

var db = Database.Open("Eason"); 
var Warranty = Request["Warranty"]; 
var EbookM = Request["EbookM"];  

if (IsPost) 
{ 
    Warranty = Request["Warranty"]; 
    if (Warranty.IsEmpty()) { 
     selectQ = "SELECT * FROM E_Reader";} 

    Warranty = Request["EbookM"]; 
    if (EbookM.IsEmpty()) { 
     selectQ = "SELECT * FROM E_Reader";} 


    if(Request.QueryString["Warranty"].IsEmpty()) { 
    selectQ = "SELECT * FROM E_Reader"; 
    searchTerm1 = Request.QueryString["Warranty"]; 
    searchTerm2 =Request.QueryString["EbookM"]; 

} 

var selectedData1 = db.Query(selectQ, searchTerm1, searchTerm2); 
var grid = new WebGrid(source: selectedData1, defaultSort: "Ebook_Model", rowsPerPage: 10); 
+0

我不明白,在你的代碼一些事情:其價值可能「SELECT * FROM E_Reader」''有'selectQ'嗎?你期望其他頁面通過QueryString傳遞值到這個頁面嗎?順便說一句,'Warranty = Request [「EbookM」];'應該可以在'EbookM = Request [「EbookM」];'中更正。也許一些很好的教程作爲[鏈接](http://www.mikesdotnetting.com/Article/180/Displaying-Search-Results-In-A-WebGrid)和[鏈接](http://www.mikesdotnetting.com/文章/ 192/Transfer-Data-Between-ASP.NET-Web-Pages)可能有所幫助。 – GmG

+0

對不起,我昨天真的很累。我知道這個代碼是一場噩夢。這裏是較新的版本,但仍然無法正常工作。 var Warranty = Request [「Warranty」]; var Made = Request [「Made」]; var db = Database.Open(「Eason」); var searchTerm =「」; var selectCommand1 =「SELECT * FROM EMADE」; var selectedEbook1 = db.Query(selectCommand1,searchTerm); var sqlQ =「SELECT * FROM E_Reader WHERE In_Warranty LIKE @ 0 or Ebook_Made LIKE @ 1」; var selectedData = db.Query(sqlQ,Warranty,Made); var grid = new WebGrid(source:selectedData); – Thhhe

+0

我檢查了這些鏈接,但這直到不適合我。 – Thhhe

回答

0

排序:)。應該有WHERE ..... AND .....而不是OR - Thhhe剛纔

最後的代碼是:

var db = Database.Open("Eason"); 
var sqlQ = "SELECT * FROM E_Reader WHERE In_Warranty LIKE @0 AND Ebook_Made LIKE @1"; 
var Warranty = "%" + Request["Warranty"] + "%"; 
var Made = "%" + Request["Made"] + "%"; 

var selectedData = db.Query(sqlQ, Warranty, Made); 

var grid = new WebGrid(source: selectedData, defaultSort: "Ebook_Made"); 
+0

謝謝。我真的沒有想到這一點。我如何防止這一點? – Thhhe

+0

對不起,我誤解了你的代碼,你很好!在我的防守中,格式化讓我失望! – Polynomial

相關問題