Sql Server EF 批量数据录入

using (var conn = new SqlConnection(connectionString))
{
	//SqlBulkCopy:大容量加载带有来自其他源的数据的 SQL Server 表
	//SqlBulkCopyOptions:加载方式
	using (var sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction))
	{
		try
		{
			//超时
			sqlbulkcopy.BulkCopyTimeout = 600;
			//数据库目标表名
			sqlbulkcopy.DestinationTableName = tableName;
			for (int i = 0; i < dt.Columns.Count; i++)
			{
				//列名映射:源列名-目标列名
				//这里的写法需要保持DataTable和数据库表的列名一致
				sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
			}
			//数据写入目标表
			sqlbulkcopy.WriteToServer(dt);
		}
		catch (System.Exception ex)
		{
			throw ex;
		}
	}
}

示例代码

SqlServerUseEFDemo

参考资料

SqlBulkCopy 类

原文地址:https://www.cnblogs.com/Lulus/p/12604717.html

时间: 2024-10-18 01:44:38

Sql Server EF 批量数据录入的相关文章

SQL Server 利用批量(batchsize)提交加快数据生成/导入

在最小化日志操作解析,应用的文章中有朋友反映生成测试数据较慢.在此跟大家分享一个简单的应用,在生成数据过程中采用批量提交的方式以加快数据导入. 此应用不光生成测试数据上,在BCP导入数据中,复制初始化快照过程中等都可以根据系统环境调整 batchSize 的大小来提高导入/初始化速度. 应用思想:这里简单介绍下组提交概念,由于关系型数据库依靠日志来保证数据完整性,即先写日志,每当一个事务完成时就需要commit日志刷入磁盘,在高并发短小事务的前提下由于日志频繁落盘导致整体写吞吐下降.用Group

使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历

使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历 原文:使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历 常常遇到需要向SQL Server插入批量数据,然后在存储过程中对这些数据进行进一步处理的情况.存储过程并没有数组.列表之类的参数类型,使用XML类型可妥善解决这个问题. 不过,SQL Server2005对标准xml的支持不足,很多地方需要特别处理.举一个例子说明一下. 这个场景是往存储过程里传递一个xml

关于 SQL Server 数据库批量备份与还原的一些 Tips

一.前提 最近需要将服务器 A 上的数据库全部备份,并在服务器 B 上进行还原,30多个数据库一个一个地用鼠标点,先是 backup,之后时 restore……整个过程实在是太浪费时间了!于是直接写一个小工具来批量备份还原数据库,这里记录一下一些 Tips,方便自己以后查看. 二.写配置文件 首先,我将数据库连接字符串和自动备份的目录路径写在了配置文件里,方便在以后数据库连接或者存储目录变动时,直接修改配置文件里的对应值就可以了. App.config 具体结构如下: <?xml version

sql server之批量数据导入

实际应用场景中,有时会需要把一批数据导入数据库.这批数据可能来源于另一个数据源.比较常规的做法是先读取到dataset,然后跑一个循环,每一行拼一句insert into语句,执行之.用过的人会知道,这种导入数据的方法效率十分低下.那么,有没有什么更好的方法呢?答案是有的.使用System.Data.SqlClient.SqlBulkCopy类.我觉得这个应该是在使用sql server资源管理器时,导入数据时所使用的方法.代码如下: ------------------------------

.Net框架搭建之1、SQL Server EF MVC简单三层框架

.Net简单三层框架简介 简单三层框架,是.Net开发中最最基础的框架了,由 数据访问层.逻辑处理层.表示层组成.一般情况下,在项目中数据模型Model层也是单独一层,但是只是单纯的数据模型不算在业务层划分当中. 好了,框架搭建,如果不了解,可能会觉得难以下手,了解之后,自然知道怎么做,只是其中的步骤,比起单纯的功能开发,是要繁琐不少,下面我们来一步一步搭建属于自己的框架,这里只列出重要步骤,其他未提到的细节可自行摸索. 数据模型Model层创建 数据模型层,首先要创建数据库,再从数据库生成EF

sql server中批量插入与更新两种解决方案分享

若只是需要大批量插入数据使用bcp是最好的,若同时需要插入.删除.更新建议使用SqlDataAdapter我测试过有很高的效率,一般情况下这两种就满足需求了 bcp方式 复制代码 代码如下: /// <summary> /// 大批量插入数据(2000每批次) /// 已采用整体事物控制 /// </summary> /// <param name="connString">数据库链接字符串</param> /// <param n

sql server中批量插入与更新两种解决方案分享(存储过程)

转自http://www.shangxueba.com/jingyan/1940447.html 1.游标方式 复制代码代码如下: DECLARE @Data NVARCHAR(max) SET @Data='1,tanw,2,keenboy' --Id,Name DECLARE @dataItem NVARCHAR(100) DECLARE data_cursor CURSOR FOR (SELECT * FROM split(@Data,';')) OPEN data_cursor FETC

Sql Server数据批量更新

UPDATE S SET S.[name]=T.[name],S.[sch_id]=T.[sch_id],S.[sex]=T.[sex],S.[isOk]=T.[isOk] FROM [Student] S INNER JOIN ( SELECT '1010' AS id,'小妹1130946325' AS name,'2' AS sch_id,'gril' AS sex,0 AS isOk UNION ALL SELECT '1011' AS id,'小子1130946325' AS name

在SQL SERVER中批量替换字符串的方法

UPDATE MainData SET Content = REPLACE(CAST(Content AS VARCHAR(8000)) , 'XM00000137' , 'XM00000078') WHERE [Key] IN (SELECT md_key FROM index_md_inProject WHERE md_inProject = 'XM00000137') 使用 replace 函数,具体的格式为: update [table表名] set [Fields字段名]=replac