传智播客--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[0].Trim(‘"‘);
                    string DQ = stringStream[1].Trim(‘"‘);
                    string LX = stringStream[2].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());
        }
时间: 2024-10-11 00:51:33

传智播客--ADO.net--SqlBulkCopy批量插入数据(小白必知)的相关文章

传智播客--高级控件--showdialog关闭(小白内容)

以往我在WPF里,用ShowDialog展示出一个页面,一般都是用Close()进行关闭. 今天看传智播客的视频时,了解到还能直接给DialogResult一个TRUE或者false的属性,使页面关闭. 第一个页面 private void Button_Click(object sender, RoutedEventArgs e) { OpenWindows ow = new OpenWindows(); ow.ShowDialog(); } 第二个页面 private void Button

传智播客DotNet面试题

技术类面试.笔试题汇总(整理者:杨中科,部分内容从互联网中整理而来) 注:标明*的问题属于选择性掌握的内容,能掌握更好,没掌握也没关系. 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化,不要梦想着把题覆盖了, 下面的题是供大家查漏补缺用的,真正的把这些题搞懂了,才能“以不变应万变”. 回答问题的时候能联系做过项目的例子是最好的,有的问题后面我已经补充联系到项目中的对应的案例了. 1.简述 private. protected. public. internal 修饰符的访问权限.

传智播客C语言视频第二季(增加诸多C语言案例讲解,有效下载期为10.5-10.10关闭)

?? 卷 backup 的文件夹 PATH 列表卷序列号为 000000F4 D4A8:14B0J:.│  1.txt│  2.txt│  ├─1传智播客_尹成_C语言从菜鸟到高手_第一章C语言概述A│  ├─文档│  │      第1讲 C语言第一阶段.doc│  │      │  └─视频│          第1讲 C语言第一阶段.mp4│          ├─2传智播客_尹成_C语言从菜鸟到高手_第二章C语言跨平台HelloWorld-A│  ├─第10节 2.5.1-2.5.7C

【高清未加密】2015传智播客 最新21期c#asp.net 基础到就业班视频和源码

[.NET]传智播客第[21]期就业班视频(高清无加密)本套2015年21期传智播客C#ASP.NET win10通用mvc+app开发视频教程附源码,是一套非常不错的asp.net自学视频教程,传智播客的实力怎么样我也不用说了,希望本套教程的学习能够对您的asp.net有所帮助和提高.这份教程是 2015年6月分的最新高清未加密的全套完整版.NET 21期的视频教程.本店为了让各位“亲”能够有更好的学习动力 和 机会 特地撸来了最新的一期全套的教程 给大家学习,这一期中增加了更加符合现在企业和

传智播客C语言视频第二季 第一季基础上增加诸多C语言案例讲解,有效下载期为10 5-10 10关闭

卷 backup 的文件夹 PATH 列表卷序列号为 00000025 D4A8:14B0J:.│  1.txt│  c语言经典案例效果图示.doc│  ├─1传智播客_尹成_C语言从菜鸟到高手_第一章C语言概述A│  ├─文档│  │      第1讲 C语言第一阶段.doc│  │      │  └─视频│          第1讲 C语言第一阶段.mp4│          ├─2传智播客_尹成_C语言从菜鸟到高手_第二章C语言跨平台HelloWorld-A│  ├─2.1 C语言环境简

传智播客JavaWeb day01

2015-01-14 一直计划着学习java,今天晚上终于下定决心看了下传智播客朴乾老师的javaweb开发视频day01之第一讲,主要内容是开发工具简单介绍.怎么创建工程.Junit的介绍,我是C#出生,所有对号入了座. 1.JDK  ==  .Net Framework 都是基础库,但是Java开发工具要手动引入,类似dll引入 2.Content Assist  ==   AutoComplete java里面的快捷键是alt+/,个人还是习惯tab键, 3 junit == 单元测试 4

【传智播客VIP用户专享】Swift教程最新更新

(1)[传智播客VIP用户专享]Swift教程最新更新 特地贡献出来忘帮顶!!(传智内部学院给的) http://pan.baidu.com/s/1jGmRRIu    提取码:i11g 相关资料下载:http://pan.baidu.com/s/1bn7yR3x    提取码:mnqh

【藏龙卧虎】成都传智播客Java就业班火爆开班!

今天早晨成都被一篇乌云笼罩,没想到却是一个阳光普照的日子.今天传智播客成都java培训中心举行了Java就业班开班典礼,看似普通的一个班级却个个非比寻常,学员们不仅Professional,而且还International,很多同学都是计算机专业毕业,已经在外拼搏过几年:而有些学员在外企上班,工资也不低:甚至还有的学员已经在某某机构学完整个课程了,可惜依旧缺乏技术去找工作... ...说起经历,那可是一个比一个传奇,不过那都是过去式,重要是他们现在已经到了成都传智播客,都是带着一份渴望,怀揣着一

成都传智播客IT培训教你一个正确的人生理念

你的人生理念是什么?你一生的目标和追求是什么?你对你的人生有一个什么啊有那个的定位?你希望你以后的生活是什么样样子的?武汉计算机学校教你一个正确的人生理念.刚刚看到了星云大师的一个对于人生理念的一段话,不辞我想写一下我的想法,对于一个90后乃至00后我们搞有一个什么样的人生观,价值观,有一个什么样的.高考毕业对于很多的人来说是一个新的起点,以前的所有将会归零,人生在一个新的层次你又会遇到不一样的人,而进入大学我们18岁了,我们成年了,一个刚进入大学对于外面的世界对于很多的人来说不仅是对于我们的未