Проблема с внедрением SQL заключается в том, что пользовательский ввод используется как часть оператора SQL. Используя подготовленные операторы, вы можете заставить пользовательский ввод обрабатываться как содержимое параметра (а не как часть команды SQL). Параметры запроса помогают избежать этого риска, отделяя литеральные значения от синтаксиса SQL.
Большинство клиентских API (включая .NET) поддерживают параметризацию запросов. Это позволяет встраивать пользовательский ввод в качестве параметров. Параметры являются заполнителями для введенного пользователем значения, которое заменяется во время выполнения. Таким образом, пользователь не может внедрить код SQL, поскольку вся запись пользователя обрабатывается как значение параметра, а не как строка, добавляемая к запросу.
параметризация - лучшее решение для атак с использованием SQL-инъекций.