Linq Запросы для поиска пользователей - PullRequest
0 голосов
/ 11 марта 2012

Я пытаюсь выполнить запрос из окна поиска, используя список данных, и я использовал linq:

data = (From k As BSPLib.ContactLib.Contact In data_org.Values Where k.stringdata Like "%" & Searchtxtbox.Text & "%" Select k.prime).ToList

Но это не работает, я вообще не получаю никаких данных.Data_org - это словарь, поэтому я использовал значения;k.stringdata содержит все данные, которые нужно искать.Searchtxtbox.text содержит определенный пользователем элемент поиска.

Я пробовал использовать sqlmethods через linq, но sqlmethods для меня не существует, я пробовал использовать Imported namespace, но код не показывает методы sql, не могли бы вы предоставитьработоспособный запрос или просто скажите мне, где я ошибся.Спасибо.

Ответы [ 2 ]

1 голос
/ 11 марта 2012

Мой Visual Basic немного заржавел, поэтому простите, если у меня неправильный синтаксис: Одна вещь, которую вы можете использовать, это Contains, которая будет похожа на "% Searchtxtbox.Text%" и точно так же, если он используется с DatabaseContext. Я знаю, что это не то же самое, что Like, но если это не сработает, скорее всего, что-то не так, и я хотел бы больше кода.

data = (From k As BSPLib.ContactLib.Contact In data_org.Values Where k.stringdata.Contains(Searchtxtbox.Text) Select k.prime).ToList 

Вы можете дополнительно использовать StartsWith и EndsWith для "Searchtxtbox.Text%" и "%Searchtxtbox.Text" Также я хотел бы предложить поставить "%" & Searchtxtbox.Text & "%" между скобками для пояснения, но это все на ваше усмотрение.

0 голосов
/ 11 марта 2012

Подстановочный знак % здесь не будет работать, помните, что это код .NET, а не SQL. Вам нужно что-то вроде этого:

data = (
    From k As BSPLib.ContactLib.Contact In data_org.Values 
    Where k.stringdata.Contains(Searchtxtbox.Text) Select k.prime).ToList
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...