Wie kann ich einer SQL-Anweisung eine vom Benutzer bereitgestellte Eingabe hinzufügen?

Ich versuche, eine SQL-Anweisung mit vom Benutzer angegebenen Daten zu erstellen. Ich verwende ähnlichen Code in C #:

var sql = "INSERT INTO myTable (myField1, myField2) " +
          "VALUES ('" + someVariable + "', '" + someTextBox.Text + "');";

var cmd = new SqlCommand(sql, myDbConnection);
cmd.ExecuteNonQuery();

und dies in VB.NET

Dim sql = "INSERT INTO myTable (myField1, myField2) " &
          "VALUES ('" & someVariable & "', '" & someTextBox.Text & "');"

Dim cmd As New SqlCommand(sql, myDbConnection)
cmd.ExecuteNonQuery()

Jedoch

dies schlägt fehl, wenn die Benutzereingabe einfache Anführungszeichen enthält (z. B.O'Brien),Ich kann das Format beim Einfügen von DateTime-Werten und @ nicht richtig darstellepeople sagen mir immer wieder, dass ich das wegen "SQL Injection" nicht machen soll.

Wie mache ich das "richtig"?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage