我正在编写一个控制台应用程序并从MySql表中获取数据。 代码:
string connection = "Server=localhoht;Database=data;Uid=root;Pwd=root123";
MySqlConnection dbcon = new MySqlConnection(connection);
MySqlCommand selectData;
dbcon.Open();
selectData = dbcon.CreateCommand();
selectData.CommandText = "SELECT user_id, user_name,user_type FROM win_user WHERE user_type=1 ORDER BY user_id ASC ";
MySqlDataReader juh = selectData.ExecuteReader();
它的工作正常。现在我想用下面的代码更新一行:
string updatedata = "UPDATE win_user SET user_type='1' WHERE user_id= '1'";
MySqlDataAdapter MyData = new MySqlDataAdapter();
MyData.UpdateCommand = new MySqlCommand(updatedata, dbcon);
但它不起作用。
答案 0 :(得分:0)
您可以在任何sql客户端工具(例如navicat)中运行命令“UPDATE win_user SET usertype ='1'WHERERE user_id ='1'”,以验证它在您的mysql数据库中是否正确。
答案 1 :(得分:0)
MySqlDataAdapter
可用于使用Update方法更新数据库表中的行
Update method(链接用于SqlServer,但概念相同)有很多重载,但基本上它需要一个DataTable,其行以某种方式([RowState != DataRowState.Unchanged][2])
进行修改,以便MySqlDataAdapter
可以选择行更改并应用适配器中定义的DeleteCommand
,UpdateCommand
和InsertCommand
上面的代码没有显示与数据表的任何类型的交互,并且您调用了Update方法,因此无法进行更新。
当然,你可以直接执行你的命令而不需要任何适配器
编辑以更改每个user_type而不是1到1
string updatedata = "UPDATE win_user SET user_type=1 WHERE user_type <> 1";
MySqlCommand cmd = new MySqlCommand(updatedata, dbcon);
int numOfRowsChanged = cmd.ExecuteNonQuery();