Foxtable(狐表)用户栏目专家坐堂 → sqlbulkcopy的问题


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

主题:sqlbulkcopy的问题

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


加好友 发短信
等级:八尾狐 帖子:1907 积分:16954 威望:0 精华:0 注册:2014/7/29 19:09:00
sqlbulkcopy的问题  发帖心情 Post By:2021/3/9 16:36:00 [显示全部帖子]

Dim conn As new System.Data.SqlClient.SqlConnection("server=" & db_IP & "," & sql_Port & ";uid=" & db_User & ";pwd=" & db_Pwd & ";database=" & db_Name)  '动态替换server=jhderp.gnway.cc,10433;uid=AAA;pwd=jhd-5688;database=DDD
conn.Open() '打开链接
tran = conn.BeginTransaction()
Dim copy As new System.Data.SqlClient.SqlBulkCopy(conn, System.Data.SqlClient.SqlBulkCopyOptions.Default, tran)  '-->SqlBulkCopy只能用于新增数据行到数据库中,不能用于修改
For Each dc As DataCol In DataTables(e.form.name & "_Table2").datacols
    Dim mapping1 As new System.Data.SqlClient.SqlBulkCopyColumnMapping(dc.name, dc.name)
    Copy.ColumnMappings.Add(mapping1)
Next
copy.Destinati '指定服务器上目标表的名称
copy.BatchSize = 1000
copy.WriteToServer(DataTables(e.form.name & "_Table2").basetable)   '你的datatable名字,执行把DataTable中的数据写入DB
tran.Commit()       '提交事务
DataTables(e.form.name & "_Table2").AcceptChanges()

当要将订单表1(只有三列) 的数据复制到订单表2中(有五列),而具列名称还可能不一样,可以实现吗?此时上面的代码应该如何修改?
谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1907 积分:16954 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2021/3/9 17:35:00 [显示全部帖子]

For Each dc As DataCol In DataTables(e.form.name & "_Table2").datacols
    Dim mapping1 As new System.Data.SqlClient.SqlBulkCopyColumnMapping(dc.name, dc.name)
    Copy.ColumnMappings.Add(mapping1)
Next
上面这种写法是表加载到ft的前台,如果直接用sql数据库中的表A copy 到另一个表B,写法要如何改变?

谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1907 积分:16954 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2021/3/9 18:05:00 [显示全部帖子]

主要是用于新项目迁移数据用,数据量都是几十万以上的,用insert into效率比较低

 回到顶部