2015-07-29 3 views
0

Мне нужна помощь в поиске шаблона текста в базе данных. Я разработал программу на C#. Мне нужно найти текстовый шаблон, вводимый пользователем, который будет искать в базе данных. Проблема заключается в том, что пользователю не нужно сопоставлять строку в базе данных, а просто быть похожим на нее. Пример ниже иллюстрирует это:C# любой шаблон, соответствующий строке базы данных

например. Строка базы данных «Мне нужно найти текст в базе данных»

и пользовательский ввод «найти потребность базы данных»

Я надеюсь, вы понимаете.
Пожалуйста, помогите мне найти любой шаблон в строке базы данных. Спасибо заранее!

+0

Вы говорите, есть строки в C# из БД и хотите их поиск, или что вы хотите запросить базу данных из C# и вернуть строковые записи, соответствующие шаблону? –

+0

поиск строки пользователя в базе данных –

+0

Ваш вопрос не очень хорошо объяснен, если вы хотите запросить базу данных? почему вы не используете оператора? – Thakur

ответ

0

Метод генерации заявление:

public static string WildFindStatement(String search) 
    { 
     //REPLACE THE STRING WITH SQL INJECTION SAFE PARAMTERS 
     //THATS ONLY FOR CONCEPT SHOWING (or at least a string buildeR) 

     string sql = "select * from bla where 1=1 "; 

     string [] sa = search.Split( new char[] {' '}); 
     foreach (var s in sa) 
     { 
      sql += (" AND columBla LIKE '%" + s + "%'"); 
     } 
     return sql; 
    } 

Вызов:

string s = WildFindStatement("the wookies you must find"); 

Результат:

select * from bla where 1=1 
    AND columBla LIKE '%the%' 
    AND columBla LIKE '%wookies%' 
    AND columBla LIKE '%you%' 
    AND columBla LIKE '%must%' 
    AND columBla LIKE '%find%' 
+0

, но он возвращает повторяющиеся записи –

+0

просто найдите ваше заявление в этом «все, что вы, печеньки, вы должны найти» –

+0

sure.if есть «нуки, которые вы должны найти» в базе данных И «все нуки, которые вы должны найти», вы получите ДВА строк. вы можете добавить TOP 1, если хотите только первый. – Chaka

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