使用MySqlDataAdapter的更新不起作用 [英] Update using MySqlDataAdapter doesn't work
问题描述
我正在尝试使用MySqlDatAdapter更新MySql表.但是,表永远不会更新!!!我之前曾经这样做过,但是使用SQL Server.我的代码中还缺少MySql特有的其他东西吗?
I am trying to use MySqlDatAdapter to update a MySql table. But, the table never updates!!! I did this before but with SQL server. Is there anything else that is specific to MySql that I am missing in my code?
DataTable myTable = new DataTable("testtable");
MySqlConnection mySqlCon = new MySqlConnection(ConfigurationManager.ConnectionStrings["DBConStr"].ConnectionString);
MySqlCommand mySqlCmd = new MySqlCommand("SELECT * FROM testtable WHERE Name = 'Tom'");
mySqlCmd.Connection = mySqlCon;
MySqlDataAdapter adapter = new MySqlDataAdapter(mySqlCmd);
MySqlCommandBuilder myCB = new MySqlCommandBuilder(adapter);
adapter.UpdateCommand = myCB.GetUpdateCommand();
mySqlCon.Open();
adapter.Fill(myTable);
myTable.Rows[0]["Name"] = "Was Tom";
myTable.AcceptChanges();
adapter.Update(myTable);
mySqlCon.Close();
谢谢
推荐答案
在更新前删除myTable.AcceptChanges()
.否则将设置所有行 RowState
到Unchanged
,因此DataAdapter将不知道已更改了某些内容.
Remove myTable.AcceptChanges()
before the update. Othwerwise that will set all rows RowState
to Unchanged
, hence the DataAdapter will not know that something was changed.
adapter.Update(myTable)
将在更新完成后自行调用AcceptChanges
.
adapter.Update(myTable)
will call AcceptChanges
itself after the update is finished.
所以...
myTable.Rows[0]["Name"] = "Was Tom";
//myTable.AcceptChanges();
adapter.Update(myTable);
这篇关于使用MySqlDataAdapter的更新不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!