【发布时间】:2012-11-14 21:11:12
【问题描述】:
我正在 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();
连接正常。这行得通。
我读过here,我现在的方式是一种保存查询的方式。还是这样吗?
现在是真正的问题。使用上面的代码,我在 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)"'
该警告适用于每个参数。添加
它甚至不起作用,因为插入的值是@mcUserName、@mcUserPass 等,而不是变量 mcUserNameNew 等持有的值...
所以我的问题是,我做错了什么,sql注入保存查询的新方法是什么?
【问题讨论】:
-
按照警告中的建议使用
AddWithValue -
@Habib,完成,警告消失了,但数据库中的值仍然不正确...]
标签: c# mysql parameters deprecated sqlcommand