Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将表从一个数据库复制到同一服务器上的另一个数据库_C#_Mysql_Winforms - Fatal编程技术网

C# 将表从一个数据库复制到同一服务器上的另一个数据库

C# 将表从一个数据库复制到同一服务器上的另一个数据库,c#,mysql,winforms,C#,Mysql,Winforms,由于服务器要求每个数据库都有一个连接,所以我在中找到的答案根本不起作用。 对于某些表,我必须在复制行之前进行一些计算,但对于某些表,我可以复制整个表。最后,我编写的程序实现了自动化 Oldcn是到旧数据库的连接,Newcn是新数据库的连接 对于我可以完整复制的表,我在下面编写了这个过程 做这项工作有更好的捷径吗?(它在后台工作) MySQL不需要为每个数据库建立单独的连接。连接有一个默认数据库,但允许在表名之前显式指定数据库名,这将覆盖默认值。因此,您可以通过单个查询执行此操作: INSERT

由于服务器要求每个数据库都有一个连接,所以我在中找到的答案根本不起作用。 对于某些表,我必须在复制行之前进行一些计算,但对于某些表,我可以复制整个表。最后,我编写的程序实现了自动化

Oldcn是到旧数据库的连接,Newcn是新数据库的连接

对于我可以完整复制的表,我在下面编写了这个过程

做这项工作有更好的捷径吗?(它在后台工作)


MySQL不需要为每个数据库建立单独的连接。连接有一个默认数据库,但允许在表名之前显式指定数据库名,这将覆盖默认值。因此,您可以通过单个查询执行此操作:

INSERT INTO newdb.tvaval 
SELECT * FROM olddb.tvaval

何时处理剩余的2个
MySqlCommand
对象。。尝试使用(){}将它们包装在
中,我有一个read和dispose在while循环的and处。因为在整个传输过程中连接是打开的,所以我没有在这里使用using语句。但我知道这是个好办法。感谢您知道sql对象上没有自动处理。我如何配置它?当我尝试此查询时,使用(MySqlCommand cmd=newmysqlcommand(“插入“+NewDbName+””+tblName+”中选择“+Pv.DbName+”+tblName,Oldcn”),我得到了此MySqlException:{MySql.Data.MySqlClient.MySqlException:针对表'def_firme'的用户'bodrum2015'@'XX.XXX.XX.XX'的INSERT命令被拒绝,因为我试图插入另一个未实现连接的数据库。如果我在本地主机中执行相同操作,则可以正常工作。您需要授予
INSERT
权限
bodrum2015@x.x.x.x
在新数据库中。是否使用dif不同的连接,因为每个数据库有不同的用户名信息?是的!一个数据库是bodrum2015.db.blabla.com,另一个是同一个共享服务器上的bodrum2016.db.blablabla.com。但是创建连接时,是否必须为每个数据库使用不同的用户名?是否可以创建一个可以访问两个数据库的用户名?
INSERT INTO newdb.tvaval 
SELECT * FROM olddb.tvaval