В своих поисках я видел использование параметризованных строк в SQL-запросах, сформированных следующим образом:
SqlCommand comm = new SqlCommand();
comm.CommandText="SELECT * FROM table WHERE field LIKE '%'+@var+'%'";
comm.Parameters.AddWithValue("var","variabletext");
SqlDataReader reader = comm.ExecuteReader();
Однако на этом форуме упоминалось, что может быть внедрена sql-версия, несмотря на то, что она используется в параметризованной строке. Я могу только предположить, что конкатенированные строки обходят всю параметризованную безопасность и просто вставляют значение непосредственно в виде строки. Если это так, как использовать операторы с подстановочными знаками в параметризованном запросе, избегая внедрения кода sql?