使用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存储大批量的数据非常的高效,将内存中的数据表直接的一次性的存储 ...
随机推荐
- 洛谷—— P2419 [USACO08JAN]牛大赛Cow Contest
https://www.luogu.org/problem/show?pid=2419 题目背景 [Usaco2008 Jan] 题目描述 N (1 ≤ N ≤ 100) cows, convenie ...
- Nginx 性能调优
原文地址:http://nginx.com/blog/tuning-nginx/ Tuning NGINX for Performance Nginx 性能调优 NGINX is well known ...
- DDR工作原理
DDR SDRAM全称为Double Data Rate SDRAM,中文名为“双倍数据流SDRAM”.DDR SDRAM在原有的SDRAM的基础上改进而来.也正因为如此,DDR能够凭借着转产成本优势 ...
- 洛谷P4051 [JSOI2007]字符加密
题目描述 喜欢钻研问题的JS 同学,最近又迷上了对加密方法的思考.一天,他突然想出了一种他认为是终极的加密办法:把需要加密的信息排成一圈,显然,它们有很多种不同的读法. 例如‘JSOI07’,可以读作 ...
- 2017.9.17校内noip模拟赛解题报告
预计分数:100+60+60=220 实际分数:100+60+40=200 除了暴力什么都不会的我..... T1 2017.9.17巧克力棒(chocolate) 巧克力棒(chocolate)Ti ...
- OSSIM(开源安全信息管理系统)在企业网络管理中的应用
国内首个Ossim技术交流群(179084574),欢迎加入我们 参与51CTO[第242期]OSSIM,企业信息安全管理利器热门技术讨论 650) this.width=650;" bor ...
- css3 背景过度实现
代码: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&q ...
- MongoDB常用操作整理
Mongodb:是一种NoSQL数据库,NoSQL:Not Only SQLSQL: 数据表->JDBC读取->POJO(VO.PO)->控制层转化为JSON数据->客户端 这 ...
- javaScript call与apply学习笔记
call和apply是借用他人的函数实现自己到功能,具体表现在改变this指向,借用他人方法 而不同的地方是call是把实参按照形参的个数传入,而apply传入的是一个数组(argument) 写一个 ...
- 简单学习Python之路1
如何在cmd中打开文件:先用win+R打开cmd界面,在已知到你自己要打开文件的地址之后比如(F:\workspace),你先按F:,然后在用cd workspace进入workspace的文件中,然 ...