Параметризованный динамический SQL-запрос
У меня есть список ключевых слов, которые я храню в списке.
Чтобы получить записи из таблицы, я использую следующий запрос:
sqlBuilder.Append("SELECT name, memberid FROM members WHERE");
StringBuilder sqlBuilder = new StringBuilder();
foreach (string item in keywords)
{
sqlBuilder.AppendFormat(" LOWER(Name) LIKE '%{0}%' AND", item);
}
string sql = sqlBuilder.ToString();
Как вы могли заметить, мой запрос уязвим для внедрения SQL, поэтому я хочу использовать параметры, используя SqlCommand (). Я пробовал следующее, но до сих пор нет работа:
foreach (string item in keywords)
{
sqlBuilder.AppendFormat(" LOWER(Name) LIKE '%' + @searchitem + '%' AND", item);
SqlCommand cmd = new SqlCommand(sqlBuilder.ToString());
cmd.Parameters.AddWithValue("@searchitem",item);
}
Где я мог сделать ошибку, или, вернее, как я должен об этом сказать?