2012-07-04 90 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 <>获取多条记录