public static void Main(string[] args)
{
string strPath = "F:\\Download\\600.txt";
int lines = 1;
Console.WriteLine("正在读取行数...."+DateTime.Now.ToString());
DataTable dt = new DataTable();
dt.Columns.Add("ID", System.Type.GetType("System.Int32"));
dt.Columns.Add("UserName",System.Type.GetType("System.String"));
dt.Columns.Add("Password", System.Type.GetType("System.String"));
dt.Columns.Add("Email", System.Type.GetType("System.String")); using (var sr = new StreamReader(strPath))
{
var ls = "";
while ((ls = sr.ReadLine()) != null)
{
if (ls.Contains("#"))
{
string[] templine = ls.Split('#');
if (templine.Length == 3)
{
DataRow item = dt.NewRow();
item["ID"] = lines;
item["UserName"] = templine[0].Trim();
item["Password"] = templine[1].Trim();
item["Email"] = templine[2].Trim();
dt.Rows.Add(item);
lines++;
}
}
}
} if (dt.Rows.Count > 0)
{
string strConnection = "server=localhost;database=Data;uid=sa;pwd=123456;Connect Timeout=50000";
SqlBulkCopyInsert(strConnection, "tb_csdn_data", dt);
} Console.WriteLine("结束读取行数" + dt.Rows.Count + "...." + DateTime.Now.ToString());
Console.ReadLine();
} public static void SqlBulkCopyInsert(string strConnection, string strTableName, DataTable dt)
{
try
{
using (SqlBulkCopy sqlRevdBulkCopy = new SqlBulkCopy(strConnection))
{
sqlRevdBulkCopy.BulkCopyTimeout = 50000;
sqlRevdBulkCopy.DestinationTableName = strTableName;
sqlRevdBulkCopy.NotifyAfter = dt.Rows.Count;
sqlRevdBulkCopy.WriteToServer(dt);
sqlRevdBulkCopy.Close();
}
}
catch (Exception ex)
{
throw (ex);
}
}

  

快速读取TXT几百万行数据, 然后插入到数据,SqlBulkCopy功能的确是有效率的更多相关文章

  1. Delphi 快速读取TXT 指定行的数据

    http://blog.csdn.net/MichaelJScofield/article/details/41869785 Delphi 快速读取TXT 指定行的数据 分类:Delphi个人挫品 ( ...

  2. C# 数据批量插入到数据库SqlBulkCopy(源数据类型:List<T> Or DataTable)

      /*_____________________ List<T>类型数据 To Sql_______________________________*/ /// <summary& ...

  3. mysql如果数据不存在,则插入新数据,否则更新的实现方法

    mysql如果数据不存在,则插入新数据,否则更新的实现方法 //如果不存在,则插入新数据 $sql = "INSERT INTO {$ecs->table('cat_lang')} ( ...

  4. SQL 如何在自增列插入指定数据

    SQL Server  中数据表往往会设置自增列,常见的比如说 首列的ID列. 往数据表插入新数据的时候,自增列是跳过的,无需插入即会按照设置的自增规则进行列增长.那么,如果我们想往自增列插入我们指定 ...

  5. 转载:mysql如果数据不存在,则插入新数据,否则更新的实现方法

    转自:http://www.jb51.net/article/28885.htm //如果不存在,则插入新数据 $sql = "INSERT INTO {$ecs->table(‘ca ...

  6. 获得Oracle中刚插入的数据的ID(for produce)

    在sql sever中实现插入数据的自动增长是很容易的,但是在oracle数据库中实现这一操作不是很容易,同时要想在.net中实现获取新插入数据的id,而 且不会出现读错的情况,就更显得困难了,为了解 ...

  7. matlab中读取txt数据文件(txt文本文档)

    matlab中读取txt数据文件(txt文本文档) 根据txt文档不同种类介绍不同的读取数据方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如te ...

  8. [C#]统计文本文件txt中的行数(快速读取)

    快速统计文本文件中的行数( StreamReader.ReadLine() ): 测试代码如下: //读取txt文件中总行数的方法 public static int requestMethod(St ...

  9. Matlab读取txt中用空格分隔的数据文件到矩阵

    转载...哪儿 忘记了 由于要做的项目中涉及到数据处理,初涉及到matlab.今天需要把一组只用空格分开的数据读取到一个三维矩阵,然后对这个矩阵进行处理. 思路是:首先用importdata读入txt ...

随机推荐

  1. php装饰器模式(decorator pattern)

    十一点了. <?php /* The decorator pattern allows behavior to be added to an individual object instance ...

  2. JUnit 4.x 与 5.x 的区别?

    区别项 4.x 5.x 手动把测试和测试方法声明为public 需要 不需要 @Test 与JUnit 4的@Test注解不同的是,它没有声明任何属性,因为JUnit Jupiter中的测试扩展是基于 ...

  3. CMDS目的端数据库碎片整理记录

    CMDS目的端数据库碎片整理记录 看看数据库里面需要做整理的表有哪些,条件可以根据需求稍微改动一下 SQL> select * from ( 2 select a.owner, 3 a.tabl ...

  4. 如果wordpress分类只有一篇文章则直接跳转到文章页

    每个项目的需求都不一样,比如最近ytkah的客户提出如果wordpress分类只有一篇文章则直接跳转到文章页,这个实现起来不会很麻烦,几行代码就能搞定,下面就来一起看看吧.打开主题的function. ...

  5. layoutSubviews的缺省实现是使用约束进行布局

    Discussion The default implementation of this method does nothing on iOS 5.1 and earlier. Otherwise, ...

  6. vscode React编程配置

    2.添加RN开发插件 React Native Tools:微软官方出的ReactNative插件,非常好用Reactjs code snippets:react的代码提示,如componentWil ...

  7. 第3章 Spring AOP

    3.1 Spring AOP简介 3.11什么是AOP? AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程).它是面向对象编程(OOP)的一种补充 ...

  8. (16)WiringPi库函数

    8.WiringPi库函数 一.wiringPi简介 wiringPi是应用于树莓派平台的GPIO控制库函数,wiringPi中的函数类似于Arduino的wiringPi系统,wiringPi库包含 ...

  9. A_G_C_007

    AGC007 A Shik and Stone 我是沙比这都能蛙一发 https://agc007.contest.atcoder.jp/submissions/7946110 B Construct ...

  10. 【JZOJ6245】【20190627】A

    题目 给定一颗\(n\)个点的树,边权为1,并给出\(\{w_i\}\)满足\(w_0=0\) \[ f(i) = \sum_{j=1}^{n} w_{dis(i,j)} \] 依次输出每一个\(f_ ...