MySqlCommand Command.Parameters.Add ist veraltet

Ich erstelle eine C # -Fenster-Formularanwendung in Visual Studio 2010.

Diese Anwendung stellt eine Verbindung zu einer MySQL-Datenbank her, und ich möchte Daten darin einfügen.

Habe ich jetzt diesen Teil des Codes:

MySqlConnection connection;
string cs = @"server=server ip;userid=username;password=userpass;database=databse";
connection = new MySqlConnection(cs);
connection.Open();

MySqlCommand command = new MySqlCommand();
string SQL = "INSERT INTO `twMCUserDB` (`mc_userName`, `mc_userPass`, `tw_userName`, `tw_userPass`) VALUES ('@mcUserName', '@mcUserPass', '@twUserName', '@twUserPass')";
command.CommandText = SQL;
command.Parameters.Add("@mcUserName", mcUserNameNew);
command.Parameters.Add("@mcUserPass", mcUserPassNew);
command.Parameters.Add("@twUserName", twUserNameNew);
command.Parameters.Add("@twUserPass", twUserPassNew);
command.Connection = connection;
command.ExecuteNonQuery();
connection.Close();

Die Verbindung ist in Ordnung. Das funktioniert.

Ich habe gelesenHier Das ist die Art und Weise, die ich jetzt habe, eine sichere Art, Abfragen zu machen. Stimmt das noch

Und nun zur eigentlichen Frage. Mit dem obigen Code erhalte ich die folgende Warnung in Visual Studio:

'MySql.Data.MySqlClient.MySqlParameterCollection.Add(string, object)' is obsolete: '"Add(String parameterName, Object value) has been deprecated.  Use AddWithValue(String parameterName, Object value)"'

Diese Warnung gilt für alle parameter.add

Und es funktioniert nicht einmal, weil die eingegebenen Werte @mcUserName, @mcUserPass usw. sind, anstatt der Werte, die die Variablen mcUserNameNew usw. enthalten ...

Meine Frage ist also, mache ich etwas falsch und was ist der neue Weg zur SQL-Injektion, außer eine Abfrage durchzuführen?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage