2012-03-10 3 views
0

Я пытаюсь запрос из окна поиска с использованием списка данных и LINQ я использовал это: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 для меня не существует, я пытался с импортом пространства имен, но код не показывает методы sql, не могли бы вы предоставить рабочий вопрос или просто сказать мне, где я поступил неправильно? , Спасибо.

ответ

0

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

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

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

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" Также я бы хотел предложить Puth "%" & Searchtxtbox.Text & "%" между круглой скобкой для уточнения, но это все зависит от вас.

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