2012-07-04 3 views
0

У меня есть база данных в приложении для Windows-приложений. Из таблицы мне нужно выбрать несколько строк. Мне нужно применить более одного условия, в котором заданы условия. Как я могу написать такой запрос?Чтение с Windows Phone Локальная база данных

Моя таблица содержит имя пользователя, DocumentId, FileType, FileLocation, FileSize и т.д ..

мне нужно выбрать строки, используя имя пользователя, 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

Конечно, вы можете. Вы можете расширить 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 или предложением группы». Из-за этой ошибки я задал этот вопрос. Еще раз спасибо. –

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(); 
} 

В запросе я использовал «И» первым, чтобы добавить больше условия в разделе «ГДЕ». Когда я изменил «И» на «&», он работает правильно и использует IList <> для получения более одной записи

Смежные вопросы