Как преобразовать строку в безопасную строку SQL?
Я создаю несколько операторов вставки sql из кучи текстовых файлов.
Эти текстовые файлы обычно являются данными пользователя. Я хотел бы дезинформировать эти данные, чтобы он не нарушил инструкцию insert.
Например, некоторые из входных данных, люди использовали слово Do not. "'" In не приведет к тому, что оператор sql подумает, что строка закончилась и, следовательно, выдает ошибку.
Есть ли какой-либо .NET-метод, который я могу вызвать для преобразования всех этих символов в escape-коды или безопасные символы?
Ответы
Ответ 1
Не санируйте свои струны. Вместо этого используйте параметризованные запросы, поскольку они обрабатывают всю дезинфекцию.
Вы не указываете, какую базу данных вы используете, поэтому я предполагаю, что это MS SQL Server. Microsoft статья на официальном веб-сайте ASP.net об этом. Также см. MSDN для SqlCommand.Parameters и AddWithValue метод.
Ответ 2
Есть только один символ, который вам нужно избежать: ansi 0x27, ака единственная цитата:
safeString = unsafeString.Replace("'","''");