修复BUG: SqlServer批导BulkInsert


C# 全选
/// <summary>
/// 使用SqlBulkCopy批导
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="entities"></param>
/// <param name="tableName"></param>
/// <returns></returns>
public override int BulkInsert<T>(List<T> entities, string tableName = null)
{
    using (SqlBulkCopy bulkCopy = CreateSqlBulkCopy())
    {
        bulkCopy.BatchSize = 5000;      // 每批处理行数
        bulkCopy.BulkCopyTimeout = 600; // 超时时间(秒)

        //获取实体类的表名
        if (String.IsNullOrEmpty(tableName))
        {
            var tableAttribute = (TableAttribute)typeof(T).GetCustomAttributes(typeof(TableAttribute), false).First();
            tableName = tableAttribute.Name;
        }

        //需要加dbo.
        if (!tableName.StartsWith("dbo")) tableName = "dbo." + tableName; 
        bulkCopy.DestinationTableName = tableName;

        //转换为DataTable
        var table = entities.ToDataTable();
        table.AcceptChanges();
        bulkCopy.WriteToServer(table);
        bulkCopy.Close();
        return table.Rows.Count;
    }
}

 

使用方法

C# 全选
_Database.BulkInsert<tb_PriceListCustomer>(list);

 

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:CSFramework.EF 数据库框架 - 支持达梦数据库
下一篇:没有了
评论列表

发表评论

评论内容
昵称:
关联文章

修复BUG: SqlServerBulkInsert
MySql MySqlBulkLoader批量导入数据(BulkInsert
修复BUG:WebApiTools.Post方法支持Https协议
修复BUG:WebApiTools.Get方法支持https协议
达梦数据库使用DmBulkCopy导数据解决方案
SQLServer2005数据库转换成SQLServer2000
C#语言学习思维图,c#思维
CSFramework.EF 数据库框架 - 测试 BulkInsert 方法极速插入对象
修复BUG:DbTools.Convert2Object方法,布尔类型永远返回true值
BUG: dalUser.CopyPermission方法
CImageLibrary类修复GetImageBytes方法获取图片大小
开通了BUG报告板块
CSFrameworkV6快速开发框架 - SqlServer(MsSql)数据库测试报告
C/S架构软件开发平台 - 旗舰版CSFrameworkV6 Bug修改记录
VS解决方案快速改名工具(CSFramework.Rename)-获取文件列表BUG
销售订单的附件管理bug报告
CSFramework框架数据库备份还原操作手册(MySql/Oracle/SqlServer/达梦)
校验明细表数据ValidatingDetailData方法有BUG
变更版本Bug,请更正。
系统管理 - 公司资料设置bug报告