从Windows Phone本地数据库中读取

时间:2012-07-04 05:17:17

标签: windows-phone-7 windows-phone-7.1.1

我的Windows手机应用中有一个数据库。从表中我需要选择一些行。我需要在查询中应用多个Where条件。我怎么写这样的查询?

我的表包含Username,DocumentId,FileType,FileLocation,FileSize等。

我需要使用Username,DocumentId和FileType选择行。如何编写查询?

现在我使用以下代码:

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 个答案:

答案 0 :(得分: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();

答案 1 :(得分: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();
}

在查询中我首先使用“AND”在“WHERE”子句中添加更多条件。当我将“AND”改为“&amp;”时它工作正常,并使用IList&lt;&gt;获得多个记录