Как использовать оператор LIKE в команде C#?
Мне нужно вставить строку в команду Sql
search.CommandText = "SELECT * FROM Contacts WHERE Name like ' + @person + % + '";
Какой это правильный способ использования LIKE
в команде?
10 ответов
Решение
Должно быть:
SELECT * FROM Contacts WHERE Name like @person + '%'
@person
это параметр - вам не нужны одинарные кавычки вокруг него. Вам нужно только объединить это с %
, который должен иметь кавычки.
Иметь ввиду:
- Вы могли бы сохранить это
"SELECT * FROM Contacts WHERE Name like @person"
и имеют значение параметра, содержащее%
(объединить в C# проще для понимания). - Вы можете также захотеть экранировать другие символы подстановки, уже находящиеся в строке:
%
,_
,[
а также]
,
Использовать синтаксис:
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
"%"
Знак может использоваться для определения подстановочных знаков (отсутствующих букв в шаблоне) как до, так и после шаблона.
Например:
LIKE '%xy'
даст вам что-нибудь, заканчивающееся на 'xy'LIKE '%xy%'
бы получить что-нибудь содержит "ху"LIKE 'xy%'
даст вам что-нибудь, начинающееся с 'xy'
Это то, что вы имеете в виду?
searchPerson.CommandText = "SELECT * FROM Contacts WHERE Name LIKE '"+person+"%'";
searchPerson.CommandText =
"SELECT * FROM Contacts WHERE Name like @person + '%'"
Просто для справки!
string strQuery = "select Ac_Key from AccountDetails where (Ac_Name like '%'+@Ac_Name+'%');
SqlCommand cmb1 = new SqlCommand(strQuery);
cmb1.Parameters.AddWithValue("@Ac_Name", AccountName);
Это должно работать
"Select * from customer where FirstName LIKE '"+TextBox1.Text + '%'+ "' ";
Если тип поля Nvarchar, используйте этот код:
"select * from Contacts where name like N'%"+person+"%'"
searchPerson.CommmandText = "SELECT * FROM Contacts WHERE Name like '" + @person + "%'";
select * from Contacts WHERE Name like '%' + '"+@person+"' + '%'
select * from Contacts WHERE Name like '%' + '"+@person+"'
select * from Contacts WHERE Name like '"+@person+"' + '%'
"SELECT * FROM table_name, например concat(@persons,'%')"
Я использовал это.