Я пытаюсь создать инструкцию SQL, используя предоставленные пользователем данные. Я использую код, подобный этому в С#:
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".
Как мне это сделать "правильно"?