Экранирование символов для отправки SQL-запроса

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
Столкнулся с проблемой, что я не понимаю как наиболее правильно экранировать спецсимволы в переменной, которая затем подставляется в sql запрос.

Обычно экранирование символов - это метод, который предоставляется из провайдера для СУБД, которую используешь.

Для MySQL везде советуют использовать в C#:
Код:
MySql.Data.MySqlClient.MySqlHelper.EscapeString("YOUR DATA STRING")
Но у нас ведь нет доступа к классу MySql? А если делать экранирование через "Regex.Escape()" - правильно ли это?

Вторая ситуация.
Если не использовать C# код, а брать кубики - как правильно экранировать данные?
Будут ли они экранироваться, если "использовать параметры в запросе":

?

Потому что просто подстановка переменной в тело запроса как раз приводит к тому, что там переменная не экранированная (что логично), но тогда крайне не логично, что в поле "значение" в скрине выше - нельзя вставить переменную, точнее нет ни автокомплита, ни при клике на ПКМ - там нет выпадающего списка с переменными (это ужас как неудобно).
 
Последнее редактирование:

LaGir

Client
Регистрация
01.10.2015
Сообщения
227
Благодарностей
927
Баллы
93
Если не использовать C# код, а брать кубики - как правильно экранировать данные?
Будут ли они экранироваться, если "использовать параметры в запросе":
Одно из предназначений параметров - как раз экранирование, можно сказать, это и есть правильный подход.
В коде, при использовании методов ZennoPoster.Db для связи с БД - создаём OrderedDictionary, заполняем его параметрами, вставляем как аргумент:
2017-06-08_13-41-27.png
 
  • Спасибо
Реакции: Lord_Alfred

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)