Foxtable(狐表)用户栏目专家坐堂 → 外部数据源高速合并的问题


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

主题:外部数据源高速合并的问题

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


加好友 发短信
等级:三尾狐 帖子:647 积分:5702 威望:0 精华:0 注册:2017/4/7 12:15:00
外部数据源高速合并的问题  发帖心情 Post By:2017/9/19 20:18:00 [只看该作者]

合并后只有一行,而且主键列还是空白的

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


加好友 发短信
等级:超级版主 帖子:107754 积分:548109 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/19 20:47:00 [只看该作者]

请上传实例说明

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


加好友 发短信
等级:三尾狐 帖子:647 积分:5702 威望:0 精华:0 注册:2017/4/7 12:15:00
  发帖心情 Post By:2017/9/20 9:00:00 [只看该作者]

这段代码可以秒速合并内部表到外部表(测试数据两千多行),分享给大家!

DataTables("总表").DataRows.Clear

   Dim tran As System.Data.SqlClient.SqlTransaction
try
    Dim conn As new System.Data.SqlClient.SqlConnection("server=;uid=sa;pwd=123;database=DataSQL")
 '改为自己数据库的连接字符串
    conn.Open() '打开链接
    tran = conn.BeginTransaction()
    Dim mapping1 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("房号", "房号") '改为自己的列名,有多少列就增加多少个
    Dim mapping2 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("预测面积", "预测面积")
Dim mapping3 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("实测面积", "实测面积")
Dim mapping4 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("套内面积", "套内面积")
Dim mapping5 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("阳台面积", "阳台面积")
Dim mapping6 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("公摊面积", "公摊面积")
Dim mapping7 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("销售面积", "销售面积")
Dim mapping8 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("户型1", "户型1")
Dim mapping9 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("户型2", "户型2")
Dim mapping10 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("底价", "底价")
Dim mapping11 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("备案价", "备案价")
Dim mapping12 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("按揭表价", "按揭表价")
Dim mapping13 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("一次性表价", "一次性表价")
Dim mapping14 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("楼号", "楼号")
Dim mapping15 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("单元", "单元")
Dim mapping16 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("房间号", "房间号")
Dim mapping17 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("楼层", "楼层")
Dim mapping18 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("总层数", "总层数")

    Dim copy As new System.Data.SqlClient.SqlBulkCopy(conn, System.Data.SqlClient.SqlBulkCopyOptions.Default, tran)
    Copy.ColumnMappings.Add(mapping1)
    Copy.ColumnMappings.Add(mapping2)
 Copy.ColumnMappings.Add(mapping3)
 Copy.ColumnMappings.Add(mapping4)
 Copy.ColumnMappings.Add(mapping5)
 Copy.ColumnMappings.Add(mapping6)
 Copy.ColumnMappings.Add(mapping7)
 Copy.ColumnMappings.Add(mapping8)
 Copy.ColumnMappings.Add(mapping9)
 Copy.ColumnMappings.Add(mapping10)
 Copy.ColumnMappings.Add(mapping11)
 Copy.ColumnMappings.Add(mapping12)
 Copy.ColumnMappings.Add(mapping13)
 Copy.ColumnMappings.Add(mapping14)
 Copy.ColumnMappings.Add(mapping15)
 Copy.ColumnMappings.Add(mapping16)
 Copy.ColumnMappings.Add(mapping17)
 Copy.ColumnMappings.Add(mapping18)
    

copy.DestinationTableName = "总表" '指定服务器上目标表的名称
    copy.BatchSize = 1000
    copy.WriteToServer(DataTables("总表1").basetable)   '你的datatable名字,执行把DataTable中的数据写入DB
    tran.Commit()                                  '提交事务
    msgbox("OK")
catch ex As exception
    msgbox(ex.message)
    tran.Rollback()    '返回False 执行失败!

End try
[此贴子已经被作者于2017/9/20 10:33:28编辑过]

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


加好友 发短信
等级:三尾狐 帖子:647 积分:5702 威望:0 精华:0 注册:2017/4/7 12:15:00
  发帖心情 Post By:2017/9/20 9:09:00 [只看该作者]

copy.Destinati '指定服务器上目标表的名称 

怎么这个地方的代码死活粘贴不上,想分享都不行
[此贴子已经被作者于2017/9/20 9:18:31编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/20 9:29:00 [只看该作者]

以下是引用liufucan在2017/9/20 9:09:00的发言:
copy.Destinati '指定服务器上目标表的名称 

怎么这个地方的代码死活粘贴不上,想分享都不行
[此贴子已经被作者于2017/9/20 9:18:31编辑过]

 

弄成斜体就可以了,比如 copy.DestinationTableName = "表D"


 回到顶部