将数据快速存入数据库的方法

本文介绍了如何通过简单代码将文本文件数据高效导入数据库,详细步骤包括连接数据库、读取文本文件、创建DataTable并插入数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  数据表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());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值