Я делаю приложение формы Windows С# в visual studio 2010.
Это приложение подключается к базе данных mysql, и я хочу вставить в нее данные.
Теперь у меня есть эта часть кода:
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();
Соединение прекрасное. Это работает.
Я прочитал здесь, что способ, которым я располагаю сейчас, является экономичным способом выполнения запросов. Это все еще правильно?
И теперь к реальному вопросу. С этим кодом выше, я получаю следующее предупреждение в визуальной студии:
'MySql.Data.MySqlClient.MySqlParameterCollection.Add(string, object)' is obsolete: '"Add(String parameterName, Object value) has been deprecated. Use AddWithValue(String parameterName, Object value)"'
Это предупреждение для каждого параметра .add
И он даже не работает, потому что вставляемые значения - это @mcUserName, @mcUserPass и т.д. вместо значений, которые сохраняются переменными mcUserNameNew и т.д.
Итак, мой вопрос: я что-то делаю неправильно, и каков новый способ SQL-инъекции сохранить запрос?