以前插入大数据的时候都是一条一条的插入,由于电脑配置不行,有一次17万条数据用了半个小时才插入完成,那个蛋疼啊!

前面听杨中科老师的课,发现一个很好的东西,25万条数据配置好的电脑几秒钟就完成了,那是一个怎样神奇的代码呢?

我借花献佛下,呵呵 都是杨中科老师写的  拿出来晒晒 勿喷

数据表T_Nums中有四个字段:

NumSection,AddressStr,NumType,AreaCode

然后从文本文件中读取输入到一个DataTable中,然后将DataTable插入数据库即可 速度实在是太快了

运行截图:

由于代码比较简单,没有写注释,有不懂的看帮助文档或者留言  不喜勿喷...

以下是代码:

string connStr = "Data Source=WADE-PC;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password=123456";
DateTime startTime = DateTime.Now;
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "文本文件(*.txt)|*.txt";
if (dialog.ShowDialog() == DialogResult.OK)
{
DataTable dt = new DataTable();
dt.Columns.Add("NumSection");
dt.Columns.Add("AddressStr");
dt.Columns.Add("NumType");
dt.Columns.Add("AreaCode");

IEnumerable<string> lines = File.ReadLines(dialog.FileName, Encoding.Default);
foreach (string str in lines)
{
string[] strs = str.Split('\t');
DataRow row = dt.NewRow();
row["NumSection"] = strs[0];
row["AddressStr"] = strs[1].ToString().Trim('"');
row["NumType"] = strs[2].ToString().Trim('"');
row["AreaCode"] = strs[3].ToString().Trim('"');
dt.Rows.Add(row);
}
using (SqlBulkCopy bulkCopy=new SqlBulkCopy(connStr))
{
bulkCopy.DestinationTableName = "T_Nums";
bulkCopy.ColumnMappings.Add("NumSection", "NumSection");
bulkCopy.ColumnMappings.Add("AddressStr", "AddressStr");
bulkCopy.ColumnMappings.Add("NumType", "NumType");
bulkCopy.ColumnMappings.Add("AreaCode", "AreaCode");
bulkCopy.WriteToServer(dt);
}

TimeSpan ts = DateTime.Now.Subtract(startTime);
MessageBox.Show("一共插入" + dt.Rows.Count + "条数据,用时:" + ts.ToString());

C#往SQLServer中插入大数据的更多相关文章

  1. MySQL_(Java)使用JDBC向数据库中插入(insert)数据

    MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL_(Java)使用JDBC向数据库中插入(insert)数据 传送门 MySQL_(Java)使用JDBC向数据库中删除(d ...

  2. sql server中的大数据的批量操作(批量插入,批量删除)

    首先我们建立一个测试用员工表 ---创建一个测试的员工表--- create table Employee( EmployeeNo int primary key, --员工编号 EmployeeNa ...

  3. 快速向表中插入大量数据Oracle中append与Nologging

    来源于:http://blog.sina.com.cn/s/blog_61cd89f60102e7gi.html 当需要对一个非常大的表INSERT的时候,会消耗非常多的资源,因为update表的时候 ...

  4. 【MySQL】MySQL中针对大数据量常用技术_创建索引+缓存配置+分库分表+子查询优化(转载)

    原文地址:http://blog.csdn.net/zwan0518/article/details/11972853 目录(?)[-] 一查询优化 1创建索引 2缓存的配置 3slow_query_ ...

  5. sql server不要插入大数据,开销太大

    sql server或者说关系型数据库中不要做一个字段存储大数据量的设计,比如要插入3000w条数据,然后每条数据中有一个文章字段,这个字段每条大概都需要存储几m的数据,那么算下来这个表就得有几百个G ...

  6. asp.net中绘制大数据量的可交互的图表

    在一个asp.net项目中要用到能绘制大数据量信息的图表,并且是可交互的(放大.缩小.导出.打印.实时数据),能够绘制多种图形. 为此进行了多方调查预研工作,预研过微软的MsChart图表组件.基于j ...

  7. [转]在SqlServer 中解析JSON数据

      在Sqlserver中可以直接处理Xml格式的数据,但因为项目需要所以要保存JSON格式的数据到Sqlserver中在博客:Consuming JSON Strings in SQL Server ...

  8. Windows Phone,向localdatabase中插入时间数据出现不能转换的错误

    在开发一个小程序时,使用到了DateTime类型的 DBType, 当向数据库中插入一条信息时,报错说是DateTime类型不能转换. 后来发现是系统给我的DateTime类型的列赋予了个初值,而这个 ...

  9. 如何导出sqlserver中的表数据,sqlserver2008

    sqlserver数据库中的表数据,我们通常想使用一下,可是怎样获取这些数据呢? 1.选择任务->生成脚本 2.选择数据库 3.设置配置,让编写数据的脚本为true 4.保存为sql 5.完成 ...

随机推荐

  1. Atitit 如何设置与安放知识的trap陷阱  知识聚合 rss url聚合工具 以及与trap的对比

    Atitit 如何设置与安放知识的trap陷阱  知识聚合 rss url聚合工具 以及与trap的对比 1.1. 安放地点 垂直知识网站csdn cnblogs等特定频道栏目,大牛博客 1 1.2. ...

  2. jQuery页面引导插件 jquery-pagewalkthrough

    http://jwarby.github.io/jquery-pagewalkthrough/ 源码 https://github.com/jwarby/jquery-pagewalkthrough

  3. 深入理解LInux内核-进程通信

    进程间通信的基本机制:1.管道和FIFO(命名管道):最适合在进程之间实现生产者/消费者的交互.进程A向管道写入数据,进程B从管道读出数据.2.信号量:内核信号量的用户态版本.3.消息:允许进程在预定 ...

  4. 使用 nw-builder 构建跨平台桌面应用程序

    NW.js 是一个使用 Web 技术创建本地应用的框架,如 HTML.JavaScript 和 CSS.简单地说,当你在使用普通的流程开发一个 Web 应用时,开发完成后,运行一个生成器,将所有东西编 ...

  5. 每日英语:Political Gridlock, Beijing Style

    To admirers outside the country, China's political system stands far above the dysfunctional democra ...

  6. 【C/C++】嵌入式程序员应该知道的0X10个C语言问题

    一.预处理器(Preprocessor) 1 . 用预处理指令#define 声明一个常数,用以表明 1 年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 6 ...

  7. 【教程】鼠标右键新建添加RTF文档

    鼠标右键新建添加RTF文档 今天想将空间日志作个本地备份,但是苦于找不到适合的文本工具,因为一般的文本编辑工具都不支持贴图. 虽然word就可以满足我们的需求,但文件格式不用doc而是rtf    而 ...

  8. 使用canvas制作简单表格

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  9. 怎样把任意exe程序注册成windows系统服务(手动注册服务)

    1. 要实现这个功能要用到微软提供的两个小工具“instsrv.exe”和“srvany.exe”(下载地址:http://www.cr173.com/soft/64394.html). 先下载这两个 ...

  10. LeetCode: Sum Root to Leaf Numbers 解题报告

    Sum Root to Leaf Numbers Given a binary tree containing digits from 0-9 only, each root-to-leaf path ...