更新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); 
+0

嗨AVD,你能送我要配置这些性能有一定的联系,我是新手,请原谅我的不好的语言。谢谢:)。 – user1466511

+0

@AVD你的'MySqlCommandBuilder cmb = new MySqlCommandBuilder(myDA)''做了什么?你似乎没有把它叫做别的地方。 – Chenxiao

+0

@Chenxiao - 它自动生成单表命令,用于协调对DataSet所做的更改和关联的数据库。这是一个只能被继承的抽象类。 http://msdn.microsoft.com/en-us/library/system.data.common.dbcommandbuilder.aspx – adatapost

嘿看看这个链接:下面 http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldataadapter.updatecommand.aspx

关注他们给出的例子,也正是他们的例子做,你将不得不在配置 你的选择,删除和插入命令没有时间:)

哦...几乎忘了只是做一个找到所有和替换“SQL”到“mysql的” :)