利用SqlBulkCopy插入数据
bulk方法主要思想是通过在客户端把数据都缓存在Table中,然后利用SqlBulkCopy一次性把Table中的数据插入到数据库
代码如下:
public static void BulkToDB(DataTable dt){ SqlConnection sqlConn = new SqlConnection( ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString); SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn); bulkCopy.DestinationTableName = "BulkTestTable"; bulkCopy.BatchSize = dt.Rows.Count; try { sqlConn.Open(); if (dt != null && dt.Rows.Count != 0) bulkCopy.WriteToServer(dt); } catch (Exception ex) { throw ex; } finally { sqlConn.Close(); if (bulkCopy != null) bulkCopy.Close(); } } public static DataTable GetTableSchema() { DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[] { new DataColumn("Id",typeof(int)), new DataColumn("UserName",typeof(string)), new DataColumn("Pwd",typeof(string))} ); return dt; } static void Main(string[] args) { Stopwatch sw = new Stopwatch(); for (int multiply = 0; multiply < 10; multiply++) { DataTable dt = Bulk.GetTableSchema(); for (int count = multiply * 100000; count < (multiply + 1) * 100000; count++) { DataRow r = dt.NewRow(); r[0] = count; r[1] = string.Format("User-{0}", count * multiply); r[2] = string.Format("Pwd-{0}", count * multiply); dt.Rows.Add(r); } sw.Start(); Bulk.BulkToDB(dt); sw.Stop(); Console.WriteLine(string.Format("Elapsed Time is {0} Milliseconds", sw.ElapsedMilliseconds)); } Console.ReadLine(); }
利用SqlBulkCopy插入数据相关推荐
- 【Hbase批量插入数据】
一.批量插入数据(hbase用户执行,不可以调整key) -- create 'ns_zj001:bigTab','f01' -- put 'ns_zj001:bigTab','001','f01:n ...
- SqlBulkCopy批量插入数据
利用SqlBulkCopy快速大批量导入数据 protected void Button1_Click(object sender, EventArgs e) { DateTime ...
- Mysql中循环拼接参数_利用循环向数据库中插入数据,参数重复的问题
又看了些资料,发现对于说参数存在的问题可以把SqlCommand的创建放到For循环里,可以只连一次数据库,但是效率还是没提高.效率的问题不在于对数据库的开关,而是还是逐条地插入数据.而且数据库连接有 ...
- SQL Server 批量插入数据方案 SqlBulkCopy 的简单封装,让批量插入更方便
在线工具 一.Sql Server插入方案介绍 关于 SqlServer 批量插入的方式,有三种比较常用的插入方式,Insert.BatchInsert.SqlBulkCopy,下面我们对比以下三种方 ...
- bulkwrite 批量插入_使用SqlBulkCopy批量插入数据
static void Main(string[] args) {//定义与目标表结构相同的DataTable DataTable dataTable = newDataTable(); dataTa ...
- 2批量批量查询数据插入数据_你还在利用复制批量插入数据吗?一个oracle命令助你批量插入数据...
大家好,我是RomMr,一个务实的科技人! 你还在用复制.粘贴的办法批量修改数据库数据吗?今天就和大家分享一个可以直接调用文档的命令来帮助大家批量修改,插入数据. 1.start 和 @ 命令 当我们 ...
- Android之网络编程利用PHP操作MySql插入数据(四)
因为最近在更新我的项目,就想着把自己在项目中用到的一些的简单的与网络交互的方法总结一下,所以最近Android网络编程方面的博文会比较多一些,我尽量以最简单的方法给大家分享,让大家明白易懂.如果有什么 ...
- mysql 存储过程 脚本_mysql利用存储过程插入大量数据脚本
1.检查是否开启二进制日志 #查看是否开启二进制日志,ON表示开启,OFF表示没有开启 show variables like'log_bin_trust_function_creators'; #若 ...
- SQL插入数据时连表查询(利用子查询一次性 insert 多条数据)
标准说明: INSERT 语句中的 SELECT 子查询可用于将一个或多个表或视图中的值添加到另一个表中.使用 SELECT 子查询还可以同时插入多行. INSERT INTO 表名 as a (a. ...
最新文章
- Java项目:财务预算管理系统(java+SSM+Jsp+Mysql+Layui+Maven)
- MySQL管理与优化(20):MySQL日志
- AlphaFold2成功秘诀:注意力机制取代卷积网络,预测准确性提升超30%
- jvm系列(七):jvm调优-工具篇
- 中国城市商业银行产业模式展望及布局规模前景分析报告2021-2027年
- 获腾讯增持,B站二次元的商业化道路仍布满荆棘
- C#语音朗读文本 — TTS的实现
- java equals比较_Java中equals()和==的比较
- java 图片压缩100k_如何将图片压缩到100K以内,教你几种免费方法
- HBae找不到协处理器导致RegionServer全部挂掉
- 帆软报表跨域之插件开发中Controller中定义的方法实现CROS的GET跨域,且请求头带自定义属性
- socket编程(三)
- 春Phone计划 51cto沙龙郑州站活动
- Spring4.3.10 集成 Apache CXF 3.3 详细说明
- UIControl IOS控件编程—IOS开发
- C#人事工资管理系统
- vm内核参数之缓存回收drop_caches
- Android MPAndroidChart之柱状图BarChart
- 街头篮球服务器一直维护,《街头篮球》2.8新版本停服维护更新公告
- 简单解决Edge浏览器被sb360篡改的方法
热门文章
- QT的QStyleOption类的使用
- QT的QHoverEvent类的使用
- C语言字符串库函数api
- C++11 - sizeof用于类成员
- python表头写进csv文件_Python读取CSV文件列并在CSV-fi中写入文件名和列名
- python内置json模块的作用_python详解json模块
- 「SLAM」十四讲:第1讲 预备知识
- IntelliJ IDEA使用(一):创建maven web项目
- 取KindEditor中的textarea的值区不到的解决方案,固定kindEditor的高度
- ajax表单排序java,java如何区分是form表单请求,还是ajax请求