Anonymous
Как добавить вводимые пользователем данные в оператор SQL?
Сообщение
Anonymous » 13 янв 2026, 18:00
Я пытаюсь создать оператор SQL, используя данные, предоставленные пользователем. Я использую код, похожий на этот, на C#:
Код: Выделить всё
var sql = "INSERT INTO myTable (myField1, myField2) " +
"VALUES ('" + someVariable + "', '" + someTextBox.Text + "');";
var cmd = new SqlCommand(sql, myDbConnection);
cmd.ExecuteNonQuery();
и это в VB.NET:
Код: Выделить всё
Dim sql = "INSERT INTO myTable (myField1, myField2) " &
"VALUES ('" & someVariable & "', '" & someTextBox.Text & "');"
Dim cmd As New SqlCommand(sql, myDbConnection)
cmd.ExecuteNonQuery()
Однако
это не удается, когда пользовательский ввод содержит одинарные кавычки (например, О'Брайен),
Кажется, я не могу правильно подобрать формат при вставке значений DateTime, и
люди продолжают говорить мне, что мне не следует этого делать из-за «SQL-инъекции».
Как мне сделать это «правильно»?
Подробнее здесь:
https://stackoverflow.com/questions/351 ... -statement
1768316453
Anonymous
Я пытаюсь создать оператор SQL, используя данные, предоставленные пользователем. Я использую код, похожий на этот, на C#: [code]var sql = "INSERT INTO myTable (myField1, myField2) " + "VALUES ('" + someVariable + "', '" + someTextBox.Text + "');"; var cmd = new SqlCommand(sql, myDbConnection); cmd.ExecuteNonQuery(); [/code] и это в VB.NET: [code]Dim sql = "INSERT INTO myTable (myField1, myField2) " & "VALUES ('" & someVariable & "', '" & someTextBox.Text & "');" Dim cmd As New SqlCommand(sql, myDbConnection) cmd.ExecuteNonQuery() [/code] Однако [list] [*]это не удается, когда пользовательский ввод содержит одинарные кавычки (например, О'Брайен), [*]Кажется, я не могу правильно подобрать формат при вставке значений DateTime, и [*]люди продолжают говорить мне, что мне не следует этого делать из-за «SQL-инъекции». [/list] Как мне сделать это «правильно»? Подробнее здесь: [url]https://stackoverflow.com/questions/35163361/how-can-i-add-user-supplied-input-to-an-sql-statement[/url]