Я пытаюсь параметризовать свои SQL-выражения, но у меня возникают некоторые проблемы с оператором LIKE. Я пробовал разные решения, но ничего не работает. Мой код:Использование параметризованных SQL-запросов LIKE
sqlCmd = new SqlCommand("SELECT " + form1.cusId.Text + "," + form1.cusName.Text" FROM " + form1.getTable() + " WHERE " + form1.getCusId() + " LIKE @filterCustomers", connection);
sqlCmd.Parameters.AddWithValue("@filterCustomers", form1.filterCus().Trim() + "%");
Я получаю
"должны объявить скалярную переменную @filterCustomers".
Почему это происходит? Так как это е общее решение ...
Вы, кажется, инъекционные материал в ваша строка SQL повсюду, поэтому я не уверен, что вы пожинаете любое из основных преимуществ параметризованных запросов. –
Каково значение 'form1.filterCus(). Trim()' точно? Отлаживайте свой код и рассказывайте нам. И так как вы хотите динамически получать имена таблиц и столбцов, я надеюсь, что вы создадите для них сильную проверку или черный список. –
Возможный дубликат [Howto? Параметры и инструкция LIKE SQL] (http://stackoverflow.com/questions/251276/howto-parameters-and-like-statement-sql) –