gpt4 book ai didi

c# - 如何在 C# 中将填充的 MYSQL 表复制到另一个数据库

转载 作者:行者123 更新时间:2023-11-29 14:45:06 24 4
gpt4 key购买 nike

我正在使用 C#、.net 3.5 和 MySQL 数据库。我在服务器 1 上有一个已填充的表,我想将其复制到服务器 2。在服务器 2 上我有相同的表结构,但该表是空的。现在我想将数据从服务器1复制到服务器2。我连接到服务器 1 并将信息填充到数据集中 - 没问题。然后我打开与另一台服务器的第二个连接。我的问题是,如何将此数据集存储在第二个服务器上?即使我设置与服务器 1 相同的 UpdateCommand 和 InsertCommand-CommandText,Update() 命令也不起作用。当我使用 Update(DataSet,"TableName") 时,我没有收到任何错误,但表仍然是空的。对于 MSSQL 数据库来说,BulkCopy 是一个选项,但对于 MySQL 数据库来说,似乎没有等效的选项!?

我不想使用 mysqldump,我想在客户端上用 C# 以编程方式执行此操作。

有什么想法吗?

编辑:

        MySqlConnection conn_DB1 = new MySqlConnection(connString_DB1);
MySqlDataAdapter adp_DB1 = new MySqlDataAdapter("select * from myDB", conn_DB1);

DataSet theDataSet_DB1 = new DataSet();
adp_DB1.Fill(theDataSet_DB1, "myDB"); //everything is fine, the Data is there


MySqlConnection conn_DB2 = new MySqlConnection(connString_DB2);
MySqlDataAdapter adp_DB2 = new MySqlDataAdapter("select * from myDB", conn_DB2);

DataSet theDataSet_DB2 = new DataSet();
adp_DB1.Fill(theDataSet_DB2, "myDB"); //this DataSet is empty, of course

theDataSet_DB2 = theDataSet_DB2.Copy(); //the data is updated, the second DataSet has all the rows as expected

adp_DB2.Update(theDataSet_DB2, "myDB"); //no error on execution, but the table is still empty on the second server

最佳答案

DataSet_DB2.Tables 中的行“未更改”,因此会发生任何情况。您必须先将行标记为“已添加”才能更新它们。

foreach (DataTable table in theDataSet_DB2.Tables)
foreach (DataRow row in table.Rows)
row.SetAdded ();

有必要构建一个与 dataAdapter 关联的 MySqlCommandBuilder:

new MySqlCommandBuilder (dataAdapter);

关于c# - 如何在 C# 中将填充的 MYSQL 表复制到另一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7122596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com