.net 使用SqlBulkCopy批量插入数据库

        //一次批量插入100W条数据到数据库
static void Main(string[] args) { System.Random a = new Random(System.DateTime.Now.Millisecond); Stopwatch sw = new Stopwatch(); DataTable dt = GetTableSchema(); for (int count = 0; count < 1000000; count++) { DataRow r = dt.NewRow(); r[0] = Guid.NewGuid().ToString(); r[1] = 100; r[2] = "ABCD"; r[3] = a.Next().ToString(); r[4] = count; r[5] = DateTime.Now; r[6] = false; dt.Rows.Add(r); } sw.Start(); BulkToDB(dt); sw.Stop(); Console.WriteLine(string.Format("Elapsed Time is {0} Milliseconds", sw.ElapsedMilliseconds)); Console.ReadLine(); } public static DataTable GetTableSchema() { DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[]{ new DataColumn("UserCode",typeof(string)), new DataColumn("key1",typeof(int)), new DataColumn("key2",typeof(string)), new DataColumn("UserName",typeof(string)), new DataColumn("Age",typeof(int)), new DataColumn("CreateTime",typeof(DateTime)), new DataColumn("IsDeleted",typeof(bool)) }); return dt; } public static void BulkToDB(DataTable dt) { SqlConnection sqlConn = new SqlConnection("Server=localhost;database=TestDB;User ID=sa;Password=123456;"); SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn); bulkCopy.DestinationTableName = "Users"; bulkCopy.BatchSize = dt.Rows.Count; try { sqlConn.Open(); if (dt != null && dt.Rows.Count != 0) bulkCopy.WriteToServer(dt); } catch (Exception ex) { throw ex; } finally { sqlConn.Close(); if (bulkCopy != null) bulkCopy.Close(); } }

转载于:https://www.cnblogs.com/weiweithe/p/4292080.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值