vijay_bale Ответов: 3

Я не могу сохранить "'" этот символ в C#


Я не в состоянии спасти
" '  " that character in c#
. Если какое-либо имя, включая это ' символьная синтаксическая ошибка идет.
ошибка есть "
"Incorrect syntax near 'SHAMEERPET'.\r\nUnclosed quotation mark after the character string ''."
Когда-нибудь оно придет

Что я уже пробовал:

Если я его уберу, то спасу. Но я добавил, что это даст некоторую синтаксическую ошибку. так как же спасти этого персонажа?

3 Ответов

Рейтинг:
20

OriginalGriff

Никогда не объединяйте строки для построения SQL-команды. Это оставляет вас широко открытыми для случайной или преднамеренной атаки SQL-инъекции, которая может уничтожить всю вашу базу данных. Вместо этого используйте параметризованные запросы.

Попробуйте что-нибудь вроде этого:

string myData = "A string that includes a quote ' character";
using (SqlConnection con = new SqlConnection(strConnect))
    {
    con.Open();
    using (SqlCommand cmd = new SqlCommand("INSERT INTO myTable (myColumn) VALUES (@STR)", con))
        {
        cmd.Parameters.AddWithValue("@STR", myData);
        cmd.ExecuteNonQuery();
        }
    }


Рейтинг:
2

Wendelius

Скорее всего, вы объединяете значения из пользовательского интерфейса непосредственно в свой SQL-оператор, и это вызывает проблемы. Чтобы исправить ошибку и обезопасить себя от SQL-инъекций, используйте параметры для передачи значений в базу данных.

Взгляните на Правильное выполнение операций с базой данных[^]


Рейтинг:
1

Patrice T

Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь уязвимости под названием "SQL injection", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа рухнет. Если пользователь вводит имя типа "Брайан О'Коннер", это может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция-Википедия[^]
SQL-инъекция[^]