(快速浏览杰哥分享过的所有经验汇总,点击跳转) |
|
在论坛看到有人问这个sqlBulkCopy,就试一下,顺便总结一下使用sqlBulkCopy批量插入数据。这个只能插入,不能修改
插上1w行以上级别时,特别好用。
以下代码,适合于把本地表,大量插入到数据库的同一个表。
如果不是同一个表的导入,推荐你自己看懂代码,稍微修改
Dim dt As DataTable = DataTables("UpdateLog") '修改为你的表
Dim conStr As String = "server=xxx,1433;uid=xxx;pwd=xxx;database=MH1WebDB" '改为自己数据库的连接字符串,注意跟狐表的数据库字符串不同,不能拿来用
Dim tran As System.Data.SqlClient.SqlTransaction
Dim conn As new System.Data.SqlClient.SqlConnection(conStr)
以下内容只有回复后才可以浏览
注意事项:
1.原始表和目标表,要求表结构完全一样,为了防止掉坑,我推荐直接用SqlCommand对着目标表,查询一个空白的临时结构表出来,然后利用这个结构表addnew,然后插入数据库,最后扔掉这个临时表
这种做法,就能在BS开发里,进入异步进行大量插入。一般批量插入都是耗时的,都是开异步,开异步就不能利用主线程的表,得用我这个思路
2.数据量越多越体现优势,在0.5-3万时没什么感觉,在10-100万行时,基本能得到1秒1w+行的速度
3.导入速度,软件层会受 主键/索引/触发器/外键 等影响,硬件层会受 网络带宽 / 服务器I/O / 服务器硬盘读取/写入等影响,所以每个人效果都不同,自行测试
此主题相关图片如下:1.png
此主题相关图片如下:2.png
此主题相关图片如下:3.png
===============================================================
顺便总结以前分享过的帖子,方便大家学习