SQL SERVER 多数据导入
- public bool CreateTB_PROPERTY_MODELLByList(List<TB_PROPERTY_MODEL> entity)
- {
- try
- {
- //将集合转换成DataTable
- DataTable dtTable = Untity.ListToDataTable(entity);
- var sqlConn = (SqlConnection)_dbContext.Database.Connection; ;
- sqlConn.Open();
- using (SqlTransaction transaction = sqlConn.BeginTransaction())
- {
- using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn, SqlBulkCopyOptions.Default, transaction))
- {
- bulkCopy.BatchSize = ;//多少条数据提交一次
- bulkCopy.BulkCopyTimeout = ;//时间设置
- bulkCopy.DestinationTableName = "TB_PROPERTY_MODEL"; //表名
- try
- {
//这里列一定要和数据库中的表的列要一样.和数据类型也一样。不然无法导入- foreach (DataColumn col in dtTable.Columns)
- {
- bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName);
- }
- bulkCopy.WriteToServer(dtTable);
- transaction.Commit();
- }
- catch (Exception ex)
- {
- transaction.Rollback();
- LogHelper.Error(ex.Message);
- throw ex.InnerException;
- }
- finally
- {
- bulkCopy.Close();
- sqlConn.Close();
- }
- }
- }
- return true;
- }
- catch (SqlException ex)
- {
- LogHelper.Error(ex.Message);
- throw ex.InnerException;
- }
- catch (DbException ex)
- {
- LogHelper.Error(ex.Message);
- throw ex.InnerException;
- }
- }
- /// <summary>
- /// List转换成Table
- /// </summary>
- /// <typeparam name="T">数据实体</typeparam>
- /// <param name="entitys">要转换的List</param>
- /// <returns>DataTable</returns>
- public static DataTable ListToDataTable<T>(List<T> entitys)
- {
- var dt = new DataTable();
- //检查实体集合不能为空
- if (entitys == null || entitys.Count < )
- {
- return dt;
- throw new Exception("需转换的集合为空");
- }
- //取出第一个实体的所有Propertie
- Type entityType = entitys[].GetType();
- PropertyInfo[] entityProperties = entityType.GetProperties();
- //生成DataTable的structure
- //生产代码中,应将生成的DataTable结构Cache起来,此处略
- foreach (PropertyInfo t in entityProperties)
- {
- //dt.Columns.Add(entityProperties[i].Name, entityProperties[i].PropertyType);
- dt.Columns.Add(t.Name);
- }
- //将所有entity添加到DataTable中
- foreach (object entity in entitys)
- {
- //检查所有的的实体都为同一类型
- if (entity.GetType() != entityType)
- {
- throw new Exception("要转换的集合元素类型不一致");
- }
- var entityValues = new object[entityProperties.Length];
- for (int i = ; i < entityProperties.Length; i++)
- {
- entityValues[i] = entityProperties[i].GetValue(entity, null);
- }
- dt.Rows.Add(entityValues);
- }
- return dt;
- }
之前用的是EF的数据写入。感觉EF在写入的时候有点慢,可能是自己没有找到EF正确的方法。
SQL SERVER 多数据导入的更多相关文章
- SQL Server 2005导入Excel表问题
EXCEL导入到SQL Server经常出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项” 原因: SQL Server的导入导出为了确定数据表的字段类型,取excel文件的前8行来判别. ...
- 从SQL Server中导入/导出Excel的基本方法(转)
从sql server中导入/导出 excel 的基本方法 /*=========== 导入/导出 excel 的基本方法 ===========*/ 从excel文档中,导入数据到sql数据库中,很 ...
- SQL Server 数据导入Mysql具体教程
SQLServer2005数据导入Mysql到具体教程(測试) SQL SERVER数据导入MYSQL文件夹 1.Navicat for MySQL 版本号10.0.9 2.创建目标数据库 3.创 ...
- SQL Server高速导入数据分享
SQL Server高速导入数据,能够尝试的方法例如以下:CTE.OpenRowSet/OpenDataSource.BULK INSERT.bcp.Shell. 以下依次介绍这几种办法. 1.CTE ...
- 数据库SQL Server DAC 导入导出数据到SQL Azure问题
对Export data-tier application报错的处理 Error:SQL71564 这个问题是数据库中一些对象如MS_Description,MS_DiagramPane1不支持DAC ...
- 将Excel导入SQL Server 只能导入数字,其他数据变为NULL怎么解决?
先新建一个TXT文件,把数据粘贴进去 再新建一个Excel文件,在菜单栏中选Data再选From Text 找到txt文件,点import 一定要选Text 点Finish,点OK. 接下来在往数据库 ...
- SQL Server数据导入导出的几种方法
在涉及到SQL Server编程或是管理时一定会用到数据的导入与导出, 导入导出的方法有多种,结合我在做项目时的经历做一下汇总: 1. SQL Server导入导出向导,这种方式是最方便的. 导入向导 ...
- SQL SERVER数据导入
我的博客已好久没有文字方面的记载了,好歹昨天已经结束软件设计师的考试了,今天怎么说也需要锻炼自己的写作能力.不然真怕自己又像上一年一样,一停就一年多了. 想好好学习数据库(SQL SERVER)方面的 ...
- SQL Server 2008导入、导出数据库
SQL Server 2008数据库的导入.导出和Mysql的导出还有一定的区别,刚开始的时候完全摸不到方向,利用Microsoft SQL Server Management Studio进行导入. ...
随机推荐
- 读python源码--对象模型
学python的人都知道,python中一切皆是对象,如class生成的对象是对象,class本身也是对象,int是对象,str是对象,dict是对象....所以,我很好奇,python是怎样实现这些 ...
- MAC Osx PHP安装指导
php.ini的位置 Mac OS X中没有默认的php.ini文件,但是有对应的模版文件php.ini.default,位于/private/etc/php.ini.default 或者说 /etc ...
- js面向对象学习 - 对象概念及创建对象
原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...
- C#制作简易屏保
前言:前段时间,有个网友问我C#制作屏保的问题,我瞬间懵逼了(C#还可以制作屏保!).于是我去查阅相关资料,下面把C#如何制作屏保的过程及我学习过程的心得也记录下来,希望对需要的人能有帮助. 基本思路 ...
- Java程序员应该了解的10个面向对象设计原则
面向对象设计原则: 是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton.Decorat ...
- iOS从零开始学习直播之3.美颜
任何一款直播软件都必须进行美颜,不然哪来的那么多美女,所以技术改变世界,不只是说说而已.美颜在采集的时候就得就行,让主播实时看到直播的效果. 1.美颜原理 其实美颜的本质就是美白和磨皮,分别通 ...
- 如何区别exists与not exists?
1.exists:sql返回结果集为真:not exists:sql不返回结果集为真.详解过程如图: exists not exists
- ExtJS 项目准备工作(一)
首先,需要从网上下载两个文件,一个是SenchaCmd-6.2.0-windows-64bit(我的电脑是window 10 64位) 另一个是ExtJs6的源码包(ext-6.0.0.415). 源 ...
- SpringMVC初步
SpringMVC框架介绍 1) Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面. Spring 框架提供了构建 Web 应用程序的全功 ...
- Aop动态生成代理类时支持带参数构造函数
一.背景 在某些情况下,我们需要植入AOP代码的类并没有默认构造函数.那么此时动态生成的代理类也需要相同签名的构造函数,并且内部调用原始类的构造函数.自己折腾了1晚上没搞定,现在搞定了发出来供大家一起 ...