shms_rony Ответов: 1

Метод поиска с помощью текстового поля


Всем Привет
Я создаю простую страницу поиска с помощью текстового поля и кнопки
Когда я пытаюсь выполнить поиск , результаты отображаются только тогда, когда я набираю цифры в текстовом поле

Это мой Sql
Select Name from Users Where Name Like '%{0}%'

Примечание: {0} - это номер поля в методе (классе)
Я вызываю эту функцию в коде позади и передаю textbox. text

это не проблема
Метод работает правильно
Но проблема :
У меня есть следующие пользователи в таблице :
Мария 56-Барак-Рано30
Но когда я пытаюсь ввести текстовое поле Maria -- & gt; результат ничего не дает
Когда я пытаюсь набрать Maria 56- & gt; результат ничего
Но когда я набираю текстовое поле 56, результат отображается в gridview

кто-нибудь может мне помочь ???

Что я уже пробовал:

Я попробовал изменить в Select SQL но ничего не изменилось

Karthik_Mahalingam

выберите * из таблицы, где имя типа " %maria%"
это работает..

shms_rony

Не работает , только цифры или пробел в текстовом поле показывают результаты выполнения
может быть , есть какая-то ошибка в текстовом поле, не могли бы вы мне помочь

shms_rony

но также, когда я пишу Maria in label text и " select where name like '%'+label1. text+'%' , та же проблема :/

Karthik_Mahalingam

конечно, но вы должны будете четко предоставить информацию.

Karthik_Mahalingam

попробуйте запустить запрос в SQL server studio и проверьте

1 Ответов

Рейтинг:
2

RossMW

Вы не дали нам код must для просмотра, поэтому я могу только заключить, что это ваш SQL-оператор с номером поля {0}.

Мы не можем видеть, что это за класс и что он делает, но вы должны проверить возвращаемый SQL-оператор, чтобы убедиться, что он является допустимым sql-оператором, прежде чем запускать его в базе данных. Приведенное выше утверждение не является таковым, если только вы не ищете {0} в поле name.

Возможно, что вы после

Select Name from Users Where Name like '%[0-9]%' and name like '%' + textbox.text + '%'


shms_rony

метод класса
==================
public DataTable searchname(строковое значение)
{
string query = строка.Формат ("выберите имя из пользователей, где имя типа' %{0}%'", значение);

обратный поиск(запрос);
}


в коде позади
=====================

охраняемых недействительными ButSrch_Click(объект отправителя, EventArgs в электронной)
{

GridView5.Источник данных = classobject.searchname(Textsrch.Текст);

GridView5.Привязку();


}

RossMW

См. измененный ответ выше. В зависимости от того, каких условий поиска вы пытаетесь достичь, вы можете иметь различные комбинации из вышеперечисленных. Но по существу вам нужно убедиться, что SQL действителен, и запустить его вручную через базу данных и исправить, пока вы не получите желаемый результат.

shms_rony

как я могу использовать ваш измененный ответ в моем sql ?

RossMW

Ответ изменился с помощью полного SQL-оператора. Ваш код DAtaTable должен быть изменен.