LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C#批量向数据库插入数据

admin
2021年1月30日 12:47 本文热度 2958

程序中,批量插入数据有两种思路。

1、用for循环,一条一条的插入,经实测,这种方式太慢了(插入一万条数据至少都需要6-7秒),因为每次插入都要打开数据库连接,执行sql,关闭连接,显然这种方式不可行。

2、使用SqlBulkCopy,在程序中定义一个DataTable,把需要插入的数据存储在DataTable中,注意DataTable中的列需与数据库中保持一致,即使是自增字段也要在DataTable中有对应的列。

具体代码如下:

DataTable dt = new DataTable(); dt.Columns.Add("ID", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Password", Type.GetType("System.String")); dt.Columns.Add("AddTime", typeof(DateTime)); Stopwatch sw = new Stopwatch(); sw.Start(); for (int i = 0; i < 10000; i++) { //SqlHelper.ExecuteNonQuery(SqlHelper.Connstr, CommandType.Text, "insert into T_User(Name, Password, AddTime) values (''qq" + i + "'', ''ww" + i + "'', getdate())"); dt.Rows.Add(null, "qq" + i, "ww" + i, DateTime.Now); } using (SqlConnection conn = new SqlConnection(SqlHelper.Connstr)) { SqlBulkCopy bulkCopy = new SqlBulkCopy(conn); bulkCopy.DestinationTableName = "T_User"; bulkCopy.BatchSize = dt.Rows.Count; conn.Open(); if (dt != null && dt.Rows.Count != 0) { bulkCopy.WriteToServer(dt); } } sw.Stop(); TimeSpan ts = sw.Elapsed; Console.WriteLine(ts.TotalMilliseconds); Console.ReadKey();

  经测试,这样子插入10000条数据只需要几百毫秒


该文章在 2021/1/30 12:47:04 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved