以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  外部数据源高速合并的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=106996)

--  作者:liufucan
--  发布时间:2017/9/19 20:18:00
--  外部数据源高速合并的问题
合并后只有一行,而且主键列还是空白的
--  作者:有点蓝
--  发布时间:2017/9/19 20:47:00
--  
请上传实例说明
--  作者:liufucan
--  发布时间: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
--  发布时间:2017/9/20 9:09:00
--  
copy.Destinati \'指定服务器上目标表的名称 

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

--  作者:有点甜
--  发布时间:2017/9/20 9:29:00
--  
以下是引用liufucan在2017/9/20 9:09:00的发言:
copy.Destinati \'指定服务器上目标表的名称 

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

 

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