Visual Studio 2010 で C# Windows フォーム アプリケーションを作成しています。
そのアプリケーションは 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)"'
その警告はすべての parameters.add に対するものです
挿入される値は、変数 mcUserNameNew などが保持している値ではなく、@mcUserName、@mcUserPass などであるため、機能していません...
だから私の質問は、私は何か間違ったことをしているのですか?SQLインジェクションを保存してクエリを実行する新しい方法は何ですか?