Foxtable(狐表)用户栏目专家坐堂 → sql server数据源(阿里云),有两个数据库,且都连接成功,foxtable怎么实现从一个数据库转换到另一个数据库啊?


  共有3075人关注过本帖树形打印复制链接

主题:sql server数据源(阿里云),有两个数据库,且都连接成功,foxtable怎么实现从一个数据库转换到另一个数据库啊?

帅哥哟,离线,有人找我吗?
夜散点炽
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:74 积分:682 威望:0 精华:0 注册:2018/3/5 14:34:00
  发帖心情 Post By:2018/4/14 14:32:00 [显示全部帖子]

我有个办法,就是用代码写出到文本文件中,再读文本文件写入到数据库。
贴份代码给你,根据需要修改后,复制在命令窗口执行就行了

注意:执行这代码需要时间,不要重复点执行按钮,只要点一次就好,然后想看进度,看数据库数据就好了

把数据库导入到文本
Dim cmd As New SQLCommand
cmd.ConnectionName="要移动数据源"
cmd.CommandText = "SELECT * Fro m 需要移动的表名"
For Each dr As DataRow In cmd.ExecuteReader().DataRows
FileSys.WriteAllText(ProjectPath & "Attachments/temp.txt",dr("字段名1") & "," & dr("字段名2") & "," &  dr("字段名3")  & ";" ,True, Encoding.Default)
Next
在另一个数据源建表
Dim cmd As New SQLCommand
cmd.ConnectionName="要写入的数据源"
cmd.CommandText = "CREATE TAB LE 表名(字段名1 VARCHAR(255),字段名2 VARCHAR(255),字段名2 VARCHAR(255))"
cmd.ExecuteNonQuery()
文本批量写入到新数据源
Dim contents As String =FileSys.ReadAllText(ProjectPath & "Attachments/temp.txt",Encoding.Default)
Dim cmd As New SQLCommand
cmd.ConnectionName="要写入的数据源"
For Each item As String In contents.split(";") '分割后循环
Dim child() = item.Split(",")  '再次分割
cmd.CommandText = "Insert In to 表名(字段名1,字段名2,字段名3) Values('" & child(0) & "','" & child(1) & "','" & child(2) & "')"     
cmd.ExecuteNonQuery()
Next


[此贴子已经被作者于2018/4/14 14:41:20编辑过]

 回到顶部