2012-07-04 89 views
0

我在我的Windows Phone應用程序中有一個數據庫。從表中我需要選擇一些行。我需要在我的查詢中應用多個Where條件。我該如何編寫這樣的查詢?從Windows Phone讀取本地數據庫

我的表中包含用戶名,DocumentId,文件類型,FileLocation,文件大小等。

,我需要選擇使用用戶名,DocumentId和文件類型行。如何編寫該查詢?

現在,我使用下面的代碼:

using (DocumentDataContext DocDb = new DocumentDataContext(strConnectionString)) 
{ 
    IQueryable<Document> DocQuery = from Doc in DocDb.Documents where Doc.UserName == txtName.Text select Doc; 
    Document Docs= DocQuery.FirstOrDefault(); 
} 

我可以用這個查詢選擇一個文件。我想選擇滿足條件的所有行。我可以在單個查詢中執行此操作嗎?

回答

2

當然可以。您可以使用標準或/和關鍵字擴展您的where條件:

from Doc in DocDb.Documents 
where Doc.UserName == txtName.Text && dic.FileType == "some type" && Doc.UserName == "some name" 
select Doc; 

獲得超過一排使用的ToList代替FirstOrDefault。它返回一個包含查詢結果的元素列表:

var Docs= DocQuery.ToList(); 
+0

感謝您的回答。但是,在查詢中使用'&'而不是'和'來正確工作,否則會發生以下錯誤:「查詢正文必須以select子句或group子句結尾。」我問這個問題是因爲這個錯誤。再次感謝。 –

0

我找到了解決辦法。

要選擇一個以上的文件,在申請多個條件「WHERE」條款,我做了在代碼中的一些變化如下

IList<Document> DocumentList = null; 

using (DocumentDataContext DocDb = new DocumentDataContext(strConnectionString)) 
{ 
    IQueryable<Document> DocQuery = from Doc in DocDb.Documents where Doc.UserName == txtName.Text & Doc.DocumentId == docId & Doc.FileType == fileType select Doc; 
    DocumentList = DocQuery.ToList(); 
} 

在我使用的查詢「和」初次添加「WHERE」條款中有更多條件。當我將「AND」更改爲「&」時,它工作正常,並使用IList <>獲取多條記錄