使用SqlBulkCopy进行批量数据插入
Dim dt As DataTable = New DataTable()
dt.Columns.Add("DtCostProductRuleGUID", GetType(Guid))
dt.Columns.Add("RecollectGUID", GetType(Guid))
dt.Columns.Add("ProjCode", GetType(String))
dt.Columns.Add("ProductGUID", GetType(Guid))
dt.Columns.Add("CostCode", GetType(String))
dt.Columns.Add("CostShortName", GetType(String))
dt.Columns.Add("ParentCode", GetType(String))
dt.Columns.Add("CostLevel", GetType(Integer))
dt.Columns.Add("IfEndCost", GetType(Integer))
dt.Columns.Add("DtCost", GetType(Decimal))
dt.Columns.Add("IsAttend", GetType(Integer))
Dim row As DataRow
Using scope As ConnectionScope = New ConnectionScope
For Each xmlNode In xmlNodeList
strCostCode = xmlNode.Attributes("CostCode").Value
strCostShortName = xmlNode.Attributes("CostShortName").Value
strParetnCode = xmlNode.Attributes("ParentCode").Value
iCostLevel = CInt(xmlNode.Attributes("CostLevel").Value)
iIfEndCost = CInt(xmlNode.Attributes("IfEndCost").Value)
decDtCost = CDec(xmlNode.Attributes("DtCost").Value)
For i = To iProductCount -
row = dt.NewRow()
row("DtCostProductRuleGUID") = Guid.NewGuid()
row("CostCode") = strCostCode
row("CostLevel") = iCostLevel
row("CostShortName") = strCostShortName
row("DtCost") = decDtCost
row("IfEndCost") = iIfEndCost
row("IsAttend") = xmlNode.Attributes(dtProduct.Rows(i).Item("Product")).Value.ToString()
row("ParentCode") = strParetnCode
row("ProductGUID") = dtProduct.Rows(i).Item("ProductGUID").ToString()
row("ProjCode") = sProjCode
row("RecollectGUID") = sRecollectGUID
dt.Rows.Add(row)
Next
Next
'保存金蝶业态
xmlNode = xmlDOM.SelectSingleNode("/data/jdRow")
For i = To iProductCount -
strSQL = "update cb_JdProductRule set JdProductName='" & xmlNode.Attributes(dtProduct.Rows(i).Item("Product")).Value.ToString() & _
"' where RecollectGUID=@RecollectGUID and ProductGUID='" & dtProduct.Rows(i).Item("ProductGUID").ToString() & "';" sbStr.Append(strSQL)
Next
CPQuery.From(sbStr.ToString(), param).ExecuteNonQuery() Dim bulkCopy As SqlBulkCopy = scope.CreateSqlBulkCopy(SqlBulkCopyOptions.FireTriggers)
bulkCopy.DestinationTableName = "cb_DtCostProductRule"
bulkCopy.WriteToServer(dt)
End Using
使用SqlBulkCopy进行批量数据插入的更多相关文章
- yii批量数据插入
yii框架批量插入数据有两种方法,第一种是循环多次插入和一次批量插入,第一种方法要注意插入数据中间有一次数据插入失败要注意回滚事务 循环插入数据 第一种方法 $model = new User(); ...
- MyBatis Plus 批量数据插入功能,yyds!
最近 Review 小伙伴代码的时候,发现了一个小小的问题,小伙伴竟然在 for 循环中进行了 insert (插入)数据库的操作,这就会导致每次循环时都会进行连接.插入.断开连接的操作,从而导致一定 ...
- EF结合SqlBulkCopy实现高效的批量数据插入 |EF插件EntityFramework.Extended实现批量更新和删除
原文链接:http://blog.csdn.net/fanbin168/article/details/51485969 批量插入 (17597条数据批量插入耗时1.7秒) using Sys ...
- c# 使用SqlBulkCopy 提高大数据插入数据库速度
自己得一点总结: 1.BulkCopy采用的是插入方式,不是覆盖方式(原数据不动,在原数据的后面复制上dataTable中的内容) 2.自增的字段不用赋值 3.数据库字段名和dataTable列名可以 ...
- [oracle/java/sql]用于上十万批量数据插入Oracle表的Java程序
程序下载:https://files.cnblogs.com/files/xiandedanteng/LeftInnerNotExist20191222.rar 原理:Oracle的Insert al ...
- 原创 SqlParameter 事务 批量数据插入
不错,很好,以后防注入批量事务提交虽然麻烦点研究了几个小时,但不会是问题了 SqlCommand cmd; HelpSqlServer helps = new HelpSqlServer(); //定 ...
- 使用SqlBulkCopy进行批量插入数据时踩过的坑
之前一直都没用过SqlBulkCopy关键字进行数据插入,更没了解过. 事因:因业务需要在数据表中添加两列,然后将数据插入进表中 之前都是这样写的 dt.Columns.Add(new DataCol ...
- KingbaseES批量数据加载的实践技巧
有时,KingbaseES数据库需要在单个或最少的步骤中导入大量数据,这通常称为批量数据导入.其中数据源通常是一个或多个大文件,这个过程有时可能非常慢. 造成性能不佳的原因有很多:索引.触发器.外键. ...
- .Net批量插入数据到SQLServer数据库,System.Data.SqlClient.SqlBulkCopy类批量插入大数据到数据库
批量的的数据导入数据库中,尽量少的访问数据库,高性能的对数据库进行存储. 采用SqlBulkCopy来处理存储数据.SqlBulkCopy存储大批量的数据非常的高效,将内存中的数据表直接的一次性的存储 ...
随机推荐
- JAVA JS 中的 modulus exponent 生成 C# 公匙
C#用的是xml,里面是base64编码的.你上面的就是hex格式,只要把上面hex格式转成byte数组,然后在base64编码就可以了. public static byte[] Hex2Byte( ...
- 洛谷 P2839 畅通工程
P2839 畅通工程 题目描述 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连, ...
- iOS开发系列之四 - UITextView 使用方法小结
// 初始化输入框并设置位置和大小 UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 10, 300, 1 ...
- linux大于2T的磁盘使用GPT分区的方法分享
(parted)表示在parted中输入的命令,其他为自动打印的信息 1.首先类似fdisk一样,先选择要分区的硬盘,此处为/dev/sdb ey: parted /dev/sdb 2.选择了/dev ...
- NET Native
起因源自于微软在 MSDN 博客上宣布了 .NET Native 的开发者预览版..NET Native 可以将 C# 代码编译成本地机器码.有了它,开发者将不仅能享受 C# 的高生产力,而且能拥有 ...
- 分享关于浏览器对象 history对象
window.history.forward() == window.history.go(-1) //返回下一页 window.history.back() == window.history.go ...
- CentOS 源设置
安装完CentOS后,系统默认的源可能有限满,这时我们需要添加国内比较好的源. 一.国内比较好的源https://opsx.alibaba.com/mirror #阿 ...
- Linux登陆类型-Linux中如何临时配置IP
Linux登录: 本地登录,直接在Linux主机上接上键盘显示器,然后输入用户名密码登录 远程登录,通过网络进行登录(需要IP 账户名 密码) windows中远程登录软件有 xshell.putty ...
- pycharm 添加注册码
https://blog.csdn.net/u014044812/article/details/78727496
- 【shell学习】经常使用条件推断-字符,数字,文件
IF 推断 之前也写过简单的shell脚本,也不是转职运维.和系统相关的工作比較少.所以不怎么熟练. 近期因为系统总是出现各种乱七八糟的问题,也没有人来协助.仅仅好自己写shell脚本了,都是些基础的 ...