0

Windows Phone アプリにデータベースがあります。テーブルからいくつかの行を選択する必要があります。クエリに複数の 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();
}

このクエリを使用して 1 つのドキュメントを選択できます。条件を満たす行をすべて選択したい。これを単一のクエリで実行できますか?

4

2 に答える 2

2

もちろんできます。where標準の or/and キーワードを使用して条件を拡張できます。

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();
于 2012-07-04T05:49:54.113 に答える
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」を「&」に変更すると、正しく動作し、複数のレコードを取得するために IList<> を使用します

于 2012-07-04T06:04:17.923 に答える