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, просто введите%
Теперь я могу получить значения даже с пустым текстовым полем или двумя.
Спасибо всем за ваше руководство, оно поможет решить эту проблему!