Home > Database > Mysql Tutorial > C#往SQLServer中插入大数据

C#往SQLServer中插入大数据

WBOY
Release: 2016-06-07 15:04:19
Original
1012 people have browsed it

以前 插入 大 数据 的时候都是一条一条的 插入 ,由于电脑配置不行,有一次17万条 数据 用了半个小时才 插入 完成,那个蛋疼啊! 25万条 数据 配置好的电脑几秒钟就完成了,那是一个怎样神奇的代码呢? 我借花献佛下,呵呵 都是杨中科老师写的 拿出来晒晒 勿喷

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

【责编:peter】

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template