【插入】通过SqlBulkCopy快速插入大量数据
通过SqlBulkCopy快速插入大量数据
/// <summary> /// 海量数据插入方法 /// </summary> /// <param name="connectionString">目标连接字符</param> /// <param name="TableName">目标表</param> /// <param name="dt">源数据</param> private void SqlBulkCopyByDatatable(string connectionString, string TableName, DataTable dt) { using (SqlConnection conn = new SqlConnection(connectionString)) { using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction)) { try { sqlbulkcopy.DestinationTableName = TableName; //一次批量的插入的数据量 sqlbulkcopy.BatchSize = 1000; //超时之前操作完成所允许的秒数,如果超时则事务不会提交 ,数据将回滚,所有已复制的行都会从目标表中移除 sqlbulkcopy.BulkCopyTimeout = 60; //设定NotifyAfter 属性,以便在每插入10000 条数据时,呼叫相应事件。 sqlbulkcopy.NotifyAfter = 10000; for (int i = 0; i < dt.Columns.Count; i++) { sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName); } sqlbulkcopy.WriteToServer(dt); } catch (System.Exception ex) { throw ex; } } } }
相关引用:
SqlConnection:

SqlBulkCopy:

参考资料:
https://www.cnblogs.com/cnki/p/5250226.html

浙公网安备 33010602011771号