Как использовать оператор 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,'%')"

Я использовал это.

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