更新DataTable的MySQL数据库C#
问题描述:
我有一个DataTable MyDT象下面这样:做MyDT东西更新DataTable的MySQL数据库C#
string MyConString = "SERVER=" + sConfig_hostname + ";" +
"DATABASE=" + sConfig_dbname + ";" +
"UID=" + sConfig_dbusername + ";" +
"PASSWORD=" + sConfig_dbpassword + ";Allow Zero Datetime=true;";
MySqlConnection connection = new MySqlConnection(MyConString);
string sQuery="Select * from Table";
connection.Open();
MySqlDataAdapter myDA = new MySqlDataAdapter(sQuery, connection);
myDA.SelectCommand.ExecuteNonQuery();
DataTable MyDT=new DataTable()// <- My DataTable
myDA.Fill(MyDT);
connection.Close();
...
...
// do something with MyDT
...
...
后,我想将其更新到数据库中,我该怎么做,我已搜查谷歌了页面,但几乎通过循环数据表进行更新。有没有办法更新整个datatable没有循环?请帮助!感谢您阅读
答
您需要配置DataAdapter的SelectCommand
,DeleteCommand
,UpdateCommand
和和InsertCommand
属性。您可以使用MySqlCommandBuilder
来填充三个命令对象(选择,删除,更新)。
MySqlConnection connection = new MySqlConnection(MyConString);
string sQuery="Select * from Table";
MySqlDataAdapter myDA = new MySqlDataAdapter(sQuery, connection);
MySqlCommandBuilder cmb = new MySqlCommandBuilder(myDA);
DataTable MyDT = new DataTable()// <- My DataTable
myDA.Fill(MyDT);
//Add new rows or delete/update existing one
//and update the DataTable using
myDA.Update(MyDT);
答
嘿看看这个链接:下面 http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldataadapter.updatecommand.aspx
关注他们给出的例子,也正是他们的例子做,你将不得不在配置 你的选择,删除和插入命令没有时间:)
哦...几乎忘了只是做一个找到所有和替换“SQL”到“mysql的” :)
嗨AVD,你能送我要配置这些性能有一定的联系,我是新手,请原谅我的不好的语言。谢谢:)。 – user1466511
@AVD你的'MySqlCommandBuilder cmb = new MySqlCommandBuilder(myDA)''做了什么?你似乎没有把它叫做别的地方。 – Chenxiao
@Chenxiao - 它自动生成单表命令,用于协调对DataSet所做的更改和关联的数据库。这是一个只能被继承的抽象类。 http://msdn.microsoft.com/en-us/library/system.data.common.dbcommandbuilder.aspx – adatapost