ASPX SQL-параметр

Я пытаюсь сделать отфильтрованный список на основе ввода пользователя и отсутствия ввода.

Я могу фильтровать, если пользователь ввел полное имя или только первый символ имени, у меня есть 3 различных текстовых поля (имя, фамилия, страна), которые используются для фильтра. В SQL Server я создал код для этого и для фильтрации, даже если они не вводят значение в одно или все текстовые поля. Поэтому я считаю, что хранимая процедура SQL в порядке.

Я полагаю, что моя проблема заключается в том, что я пытаюсь получить эту информацию от пользователя в Visual Studio через текстовые поля и используя параметры SQL для отправки информации в хранимую процедуру. Я заметил, что не могу получить пустую строку в параметре SQL. Есть ли в любом случае передать пустую строку в параметр SQL?

Вот кусочки кода...

Соответствующие биты из хранимой процедуры:

@Namenvarchar(100) = ' ',
@Surname nvarchar(100) = ' ',
@Country nvarchar(100) = ' '

AND IsNull(Input.Name, '')  LIKE '%' + @Name+ '%'
AND IsNull(Input.Surname, '') LIKE '%' + @Surname + '%' 
AND IsNull(Input.Country, '') LIKE '%' + @Country + '%'

А вот код, связанный со стороной Visual Studio:

SqlCommand cmd = new SqlCommand("FilterBasedOnInput", con);
cmd.CommandType = CommandType.StoredProcedure;

SqlParameter Name = new SqlParameter("@Name",  TBName.Text);
SqlParameter Surname= new SqlParameter("@Surname",  TBSurname.Text);
SqlParameter Country= new SqlParameter("@Country",  TBCountry.Text);


cmd.Parameters.Add(Name);
cmd.Parameters.Add(Surname);
cmd.Parameters.Add(Country);

con.Open();

Так скажем, в БД у меня есть...

Names ("Tom", "Jones", "Nick")
Surname ("To", "Jo", "Ni")
Country ("England", "USA", "France")

Если пользователь вводит в текстовое поле "O" в имени "O", то и Том, и Джонс придумали бы свои 3 столбца, но если бы они также вводили текстовое поле "Фамилия" с "Кому", тогда только Том отображался бы с его 3 столбцами. У меня есть это работает на SQL Server, но не в Visual Studio ASPX.

1 ответ

Хорошо, ребята, я нашел ответ, и это в GridView!

Я отображал данные, и когда вы настраиваете gridview, есть столбец Default Value, просто введите%

Теперь я могу получить значения даже с пустым текстовым полем или двумя.

Спасибо всем за ваше руководство, оно поможет решить эту проблему!

Другие вопросы по тегам