У меня есть окно поиска, в котором выполняется поиск по идентификатору клиента, его полному имени или части имени.Я использую «LIKE» для поиска по части их имени.
Я могу выполнять поиск по ID клиента или полному имени без проблем, но если я введу Sam
, записи для Samuel
не появятся.
Я делаю это ниже в своем выражении SQL в коде, но не получаю записей при поиске частей имен.
string sql = "SELECT * FROM customers WHERE firstName LIKE '%@name%' OR lastName LIKE '%@name%' OR (firstName + ' ' + lastName)=@name OR customerID=@id ORDER BY customerID desc";
SqlParameter[] spParameter = new SqlParameter[2];
spParameter[0] = new SqlParameter("@id", (int.TryParse(searchTb.Text, out int i) ? i : 0));
spParameter[1] = new SqlParameter("@name", searchTb.Text);
Я поместил этот запрос в SSMS
SELECT *
FROM customers
WHERE firstName LIKE '%Sam%'
OR lastName LIKE '%lap%'
OR (firstName + ' ' + lastName) = 'Bob Tom'
OR customerID = 1
Когда я нажимаю «выполнить», он показывает ожидаемый результат.Я получаю все записи с именами, которые содержат sam
, фамилии с lap
и т. Д.
Есть ли что-то, что я должен делать с кодом, чтобы исправить свой вывод, правильно ли я использую свои параметры с подобным