0

Как добавить пользовательский ввод в SQL-запрос?

16

Я пытаюсь создать 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()

Однако у меня возникли некоторые проблемы:

  • Запрос не проходит, если пользовательский ввод содержит одиночные кавычки (например, O'Brien).
  • Я не могу правильно отформатировать значение DateTime при вставке.
  • Мне постоянно говорят, что такой подход небезопасен из-за "SQL-инъекций".

Как правильно реализовать это?

0 ответ(ов)

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь