C#批量保存方法-利用Net SqlBulkCopy 批量导入数据库,速度超快-通用方法源码提供
#region public void SqlBulkCopyData(DataTable dataTable) 利用Net SqlBulkCopy 批量导入数据库,速度超快
/// <summary>
/// 利用Net SqlBulkCopy 批量导入数据库,速度超快
/// </summary>
/// <param name="dataTable">源内存数据表</param>
public void SqlBulkCopyData(DataTable dataTable)
{
// SQL 数据连接
SqlConnection sqlConnection = null;
// 打开数据库
this.Open();
// 获取连接
sqlConnection = (SqlConnection)GetDbConnection();
using (SqlTransaction tran = sqlConnection.BeginTransaction())
{
// 批量保存数据,只能用于Sql
SqlBulkCopy sqlbulkCopy = new SqlBulkCopy(sqlConnection, SqlBulkCopyOptions.Default, tran);
// 设置源表名称
sqlbulkCopy.DestinationTableName = dataTable.TableName;
// 设置超时限制
sqlbulkCopy.BulkCopyTimeout = 1000;
foreach (DataColumn dtColumn in dataTable.Columns)
{
sqlbulkCopy.ColumnMappings.Add(dtColumn.ColumnName, dtColumn.ColumnName);
}
try
{
// 写入
sqlbulkCopy.WriteToServer(dataTable);
// 提交事务
tran.Commit();
}
catch
{
tran.Rollback();
sqlbulkCopy.Close();
}
finally
{
sqlbulkCopy.Close();
this.Close();
}
}
}
#endregion
作者:王春天 地址:http://www.cnblogs.com/spring_wang/
作者: 王春天 出处: http://www.cnblogs.com/spring_wang/ Email: spring_best@yeah.net QQ交流:903639067
QQ群:322581894 关于作者: 大连天翼信息科技有限公司 技术总监。 SNF快速开发平台 创始人。应用平台架构师、IT规划咨询专家、业务流程设计专家。 专注于快速开发平台的开发、代码生成器。同时专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,精通DotNet系列技术Vue、.NetCore、MVC、Webapi、C#、WinForm等,DB(SqlServer、Oracle等)技术,移动端开发。熟悉Java、VB及PB开发语言。在面向对象、面向服务以及数据库领域有一定的造诣。现从事项目实施、开发、架构等工作。并从事用友软件产品U8、U9、PLM 客开工作。 如有问题或建议,请多多赐教! 本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。