zoukankan      html  css  js  c++  java
  • C#往SQLServer中插入大数据

    以前插入大数据的时候都是一条一条的插入,由于电脑配置不行,有一次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(' ');
    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());

  • 相关阅读:
    有趣的linux指令
    Linux——文件打包与压缩
    linux点滴记录
    不归零法编码、曼彻斯特编码和差分曼彻斯特编码
    MySQL点滴记录
    hdu 1200 To and Fro(简单模拟或DP)
    hdu 1081 To The Max(dp+化二维为一维)
    抓起根本(二)(hdu 4554 叛逆的小明 hdu 1002 A + B Problem II,数字的转化(反转),大数的加法......)
    抓其根本(一)(hdu2710 Max Factor 素数 最大公约数 最小公倍数.....)
    hdu 1159 Common Subsequence(最长公共子序列 DP)
  • 原文地址:https://www.cnblogs.com/cxzdy/p/3730025.html
Copyright © 2011-2022 走看看