传智播客--ADO.net--SqlBulkCopy批量插入数据(小白必知)
一般情况下,我们在向数据库中插入数据时用Insert语句,但是当数据量很大的时候,这种情况就比较缓慢了,这个时候就需要SqlBulkCopy这个类。
SqlBulkCopy本身常用的函数有这么几个
DestinationTableName-----服务器目标表上的名称,也就是你要向哪个表插入大量的数据,这个就设置为那个表名
ColumnMappings-----字段映射,因为是要在本地建立一个Table,然后将整个Table一次性的加入到数据库中,因此需要将本地的Table的字段和数据库表中的字段做好映射关系
WriteToServer-----这个就是写入数据库了,不需要多说
导入的数据是传智播客免费视频上提供的手机号码归属地的信息,插入数据库看了一下,一共有258113条数据,用时大概6秒吧。

private void btnDR_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "文本文件|*.txt";
if(ofd.ShowDialog()!=true)
{
return;
}
DateTime time = DateTime.Now;//计时,看看花了多长时间 DataTable table = new DataTable();//本地创建一个临时表
//给临时表添加列名
table.Columns.Add("HD");
table.Columns.Add("DQ");
table.Columns.Add("LX");
using(StreamReader streamReader=new StreamReader(ofd.FileName,Encoding.Default))//读取文件
{
while(!streamReader.EndOfStream)
{
string[] stringStream = streamReader.ReadLine().Split('\t');//按行读取,通过\t进行分割,得到数组
string HD = stringStream[].Trim('"');
string DQ = stringStream[].Trim('"');
string LX = stringStream[].Trim('"');
//将数据插入到本地创建的临时表里
DataRow row = table.NewRow();
row["HD"] = HD;
row["DQ"] = DQ;
row["LX"] = LX;
table.Rows.Add(row);
}
}
//这部分就是从本地导入到数据库中
using(SqlConnection conn=new SqlConnection("Data Source=.;Initial Catalog=imageprocess;Integrated Security=True"))
{
conn.Open();
using(SqlBulkCopy bulkCopy=new SqlBulkCopy(conn))
{
bulkCopy.DestinationTableName = "T_HM";
bulkCopy.ColumnMappings.Add("HD", "HD");//前面的参数是本地的临时Table列名,后面的参数是数据库的列名。两个名称不需要相同,我写相同,是为了方便
bulkCopy.ColumnMappings.Add("DQ", "DQ");
bulkCopy.ColumnMappings.Add("LX", "LX");
bulkCopy.WriteToServer(table);
}
}
TimeSpan TS = DateTime.Now - time;
MessageBox.Show(TS.ToString());
}
传智播客--ADO.net--SqlBulkCopy批量插入数据(小白必知)的更多相关文章
- 传智播客ADO.Net项目开发教程具体解释
内容简单介绍: 本教程为传智播客.Net培训课堂的现场录像,请到140623ls" target="_blank">传智播客.Net学院下载很多其它免费.Net视频 ...
- 传智播客--高级控件--showdialog关闭(小白内容)
以往我在WPF里,用ShowDialog展示出一个页面,一般都是用Close()进行关闭. 今天看传智播客的视频时,了解到还能直接给DialogResult一个TRUE或者false的属性,使页面关闭 ...
- 传智播客DotNet面试题
技术类面试.笔试题汇总(整理者:杨中科,部分内容从互联网中整理而来) 注:标明*的问题属于选择性掌握的内容,能掌握更好,没掌握也没关系. 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化 ...
- 《2013传智播客视频》-wmv,avi,mp4.目录
\!--14俄罗斯方块\视频\.复习.avi; \!--14俄罗斯方块\视频\ 复习.avi; \!--14俄罗斯方块\视频\ 形状旋转.avi; \!--14俄罗斯方块\视频\ 判断形状能否变形.a ...
- 传智播客.NET视频学习课件
传智播客.NET视频学习课件访问.NET网站了解更多课程详情http://net.itcast.cn(小提示:为什么本书中超链接打不开?)此套课件是伴随 传智播客.net实况教学视频 (小提示:为什么 ...
- 【高清未加密】2015传智播客 最新21期c#asp.net 基础到就业班视频和源码
[.NET]传智播客第[21]期就业班视频(高清无加密)本套2015年21期传智播客C#ASP.NET win10通用mvc+app开发视频教程附源码,是一套非常不错的asp.net自学视频教程,传智 ...
- 传智播客C语言视频第二季(第一季基础上增加诸多C语言案例讲解,有效下载期为10.5-10.10关闭)
卷 backup 的文件夹 PATH 列表卷序列号为 00000025 D4A8:14B0J:.│ 1.txt│ c语言经典案例效果图示.doc│ ├─1传智播客_尹成_C语言从菜鸟到高手_第一 ...
- 2013传智播客视频--.ppt,.pptx,.doc,.docx.目录
\!-- JQ03-JQ事件动画\.1版JS+JQ PPT\00JsDom编程01_邹华栋.docx; \!-- JQ03-JQ事件动画\.1版JS+JQ PPT\00JsDom编程01_邹华栋.pp ...
- 大前端时代已经到来!传智播客2015之WEB前端视频教程(全套教程共15G)
大前端时代已经到来!传智播客2015之WEB前端视频教程(全套教程共15G)大前端时代已经到来!如今,前端开发工程师的职责,不是只有切图.制作网页这么简单哦! G:\传智播客2015-WEB前端视频教 ...
随机推荐
- BZOJ‘s Usaco 奶牛题集锦
1230 线段树 1231 状压DP 1232 最小生成树 1527 贪心 1600 打表找规律 1601 最小生成树 1602 prime 1606 DP 1607 筛法 1609 DP 1610 ...
- 关于使用iframe嵌套页面的跳转方式
一.背景A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,在D中跳转页面的写法区别如下. 二.JS跳转window.location.href.locatio ...
- python实现简单爬虫功能
在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材. 我们最常规的做法就是通过鼠标右键,选择另存为.但有些图片鼠标右键的 ...
- BZOJ2908: 又是nand
Description 首先知道A nand B=not(A and B) (运算操作限制了数位位数为K)比如2 nand 3,K=3,则2 nand 3=not (2 and 3)=not 2=5. ...
- appium过程中的问题
1.在eclipse中点击Genymotion Virtual Device Manager ,选择虚拟设备,点击start后,无反应. 解决方法:Help/Install New Softwa ...
- nginx的日常应用
nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes ; 工作进程:数目. ...
- dede 调用原图的路径
步骤:1修改include/extend.func.php 添加如下代码: //取原图地址function bigimg($str_pic){$str_houzhi=substr($str_pic,- ...
- 游标cursor
if exists(select * from sys.objects where name='info_one') drop table info_one go create table info_ ...
- CSS中"!important"的使用
本篇文章使用最新的IE10以及firefox与chrome测试(截止2013年5月27日22:23:22) CSS的原理: 我们知道,CSS写在不同的地方有不同的优先级, .css文件中的定义 < ...
- cocoapods安装出错问题
今天执行pod install时,出现了错误,提示更新,好,那就更新; 1.终端执行了下:gem sources -l 查看了下源 *** CURRENT SOURCES *** https:// ...