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. ovirt磁盘类型(IDE, virtio, virtio-scsi)

    ovirt磁盘类型辨析(IDE, virtio, virtio-scsi) 通过一张表格,简单明了的说明这三种硬盘的不同: 整体上来看这三者的最大不同还是挂载磁盘的数量.根据在ovirt的上测试,一台 ...

  2. Spring Cloud 之 Ribbon 知识点:服务器负载均衡

    Ribbon 是和 Feign 以及 Eureka 紧密协作,完成工作的,具体如下: 首先 Ribbon 会从 Eureka Client 里获取到对应的服务注册表,也就知道了所有的服务都部署在了哪些 ...

  3. HelloPlatform

    #include <stdio.h> int main() { #if _PLATFORM_ == _PLATFORM_TRU64 printf("Hello _PLATFORM ...

  4. 关于 Nginx 配置的一些疑惑, Nginx 根据cookie 进行rewrite

    网站目录结构如下:/public/en.html/public/zh_cn.html/public/index.php 之前所有的非静态资源请求都交给 index.php现在要把首页的请求 不走PHP ...

  5. jquery 获取 新添加元素 点击后 的子元素

    $("body").on("click", '.tabletr1', (event) => { debugger var ID2 = $(event.ta ...

  6. luogu_4287:双倍回文

    洛谷4287:双倍回文 前言: 参考博文: https://www.cnblogs.com/Vscoder/p/10498625.html 题目描述: 记字符串\(w\)的倒置为\(w^R\).例如\ ...

  7. [RN] React Native 使用 FlatList 和 ScrollView 的下拉刷新问题

    React Native 使用 FlatList 和 ScrollView 实现 下拉刷新时,RefreshControl 控件不起作用, 后来经查明,原来 RefreshControl 要加在 Sc ...

  8. share memory between guest and nic

    通过硬件的IOMMU,内核提供的共享内存.VFIO可以实现. REF: 1. offical DPDK API Doc, 简书有翻译版 DPDK编程指南(翻译)(一)  (二十七) 2. dpdk v ...

  9. youtube 下载视频插件

    https://zh.savefrom.net/userjs-for-google-chrome.php

  10. 奇袭 CodeForces 526F Pudding Monsters 题解

    考场上没有认真审题,没有看到该题目的特殊之处: 保证每一行和每一列都恰有一只军队,即每一个Xi和每一个Yi都是不一样 的. 于是无论如何也想不到复杂度小于$O(n^3)$的算法, 只好打一个二维前缀和 ...