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. MSAA简介

    https://www.cnblogs.com/gnagwang/archive/2010/04/20/1716006.html MSAA的全称是Microsoft Active Accessibil ...

  2. can总线学习网上资料汇总

    https://zhuanlan.zhihu.com/p/30247549?utm_source=wechat_session&utm_medium=social&utm_oi=280 ...

  3. IMP本质上是一个通用的函数指针

    IMP:通用的函数指针 /// A pointer to the function of a method implementation. #if !OBJC_OLD_DISPATCH_PROTOTY ...

  4. java 解决nginx代理的跨域访问问题

    一.什么是跨域 跨域是浏览器对JavaScript同源策略的限制 二.什么情况下会产生跨域 域名不同 wwww.baidu.com www.jd.com 域名相同,访问的端口不同 wwww.baidu ...

  5. LeetCode 1197. Minimum Knight Moves

    原题链接在这里:https://leetcode.com/problems/minimum-knight-moves/ 题目: In an infinite chess board with coor ...

  6. 代码注入/文件包含 弹出Meterpreter

    主要通过 msf 中 exploit 的 web_delivery 模块来实现此功能 0x01 前提背景 目标设备存在远程文件包含漏洞或者命令注入漏洞,想在目标设备上加载webshell,但不想在目标 ...

  7. Android Studio 屏幕方向以及UI界面状态的保存

    package com.example.orientation; import android.os.Bundle; import android.util.Log; import android.v ...

  8. c语言用指针定义一个类型进行输入输出

    1 整型数组 // #include "stdafx.h" #include "stdlib.h" int _tmain(int argc, _TCHAR* a ...

  9. HustOJ二次开发之修改相关Logo

    比如将如图中的HUSTOJ进行修改: 在Linux上修改,通过关键字搜索,会获取如下两个重要文件,找到都有的文字进行修改即可: grep -rn "HUSTOJ" * cd /ho ...

  10. Http、Socket、WebSocket之间联系与区别

    WebSocket和Socket区别 可以把WebSocket想象成HTTP(应用层),HTTP和Socket什么关系,WebSocket和Socket就是什么关系. HTTP 协议有一个缺陷:通信只 ...