SqlCommand cmd = new SqlCommand("select * from [Table] where Col1 like 
                      %@astr% or Col2 like %@astr% or Col3 like %@astr%)", con);        
cmd.Parameters.AddWithValue("@astr", st);

Что не так с приведенной выше командой? Я получил сообщение об ошибке «рядом с @astr».

0
user3688221 16 Апр 2016 в 16:33

3 ответа

Лучший ответ

Вы должны указать дикие символы (%) в своей переменной, удалить дикие символы в запросе.

st = string.Format("%{0}%", st); // in case your search string don't have wild characters..
SqlCommand cmd = new SqlCommand("select * from [Table] where Col1 like 
                      %@astr% or Col2 like @astr or Col3 like @astr)", con);        
cmd.Parameters.AddWithValue("@astr", st);
1
Hari Prasad 16 Апр 2016 в 14:00

В строке поиска отсутствуют кавычки, а в одной скобке слишком много:

SqlCommand cmd = new SqlCommand(
  @"select * from [Table] 
    where Col1 like '%' || @astr || '%' 
       or Col2 like '%' || @astr || '%' 
       or Col3 like '%' || @astr || '%'", con);        
0
Thorsten Kettner 16 Апр 2016 в 13:42

Если астр - это строка. вы можете попробовать это.

string astr = "ABC";
SqlCommand cmd = new SqlCommand("select * from [Table] where Col1 like %" + astr + "% or Col2 like %" + astr + "% or Col3 like %" + astr + "%", con); 
cmd.Parameters.AddWithValue("@astr", st);
-1
reza.cse08 16 Апр 2016 в 13:59