1. public bool CreateTB_PROPERTY_MODELLByList(List<TB_PROPERTY_MODEL> entity)
  2. {
  3. try
  4. {
  5.  
  6. //将集合转换成DataTable
  7. DataTable dtTable = Untity.ListToDataTable(entity);
  8.  
  9. var sqlConn = (SqlConnection)_dbContext.Database.Connection; ;
  10. sqlConn.Open();
  11. using (SqlTransaction transaction = sqlConn.BeginTransaction())
  12. {
  13. using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn, SqlBulkCopyOptions.Default, transaction))
  14. {
  15. bulkCopy.BatchSize = ;//多少条数据提交一次
  16. bulkCopy.BulkCopyTimeout = ;//时间设置
  17. bulkCopy.DestinationTableName = "TB_PROPERTY_MODEL"; //表名
  18. try
  19. {
    //这里列一定要和数据库中的表的列要一样.和数据类型也一样。不然无法导入
  20. foreach (DataColumn col in dtTable.Columns)
  21. {
  22. bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName);
  23. }
  24. bulkCopy.WriteToServer(dtTable);
  25. transaction.Commit();
  26. }
  27. catch (Exception ex)
  28. {
  29. transaction.Rollback();
  30. LogHelper.Error(ex.Message);
  31. throw ex.InnerException;
  32. }
  33. finally
  34. {
  35. bulkCopy.Close();
  36. sqlConn.Close();
  37. }
  38. }
  39. }
  40. return true;
  41. }
  42. catch (SqlException ex)
  43. {
  44. LogHelper.Error(ex.Message);
  45. throw ex.InnerException;
  46. }
  47. catch (DbException ex)
  48. {
  49. LogHelper.Error(ex.Message);
  50. throw ex.InnerException;
  51. }
  52. }
  1. /// <summary>
  2. /// List转换成Table
  3. /// </summary>
  4. /// <typeparam name="T">数据实体</typeparam>
  5. /// <param name="entitys">要转换的List</param>
  6. /// <returns>DataTable</returns>
  7. public static DataTable ListToDataTable<T>(List<T> entitys)
  8. {
  9. var dt = new DataTable();
  10. //检查实体集合不能为空
  11. if (entitys == null || entitys.Count < )
  12. {
  13. return dt;
  14. throw new Exception("需转换的集合为空");
  15. }
  16. //取出第一个实体的所有Propertie
  17. Type entityType = entitys[].GetType();
  18. PropertyInfo[] entityProperties = entityType.GetProperties();
  19. //生成DataTable的structure
  20. //生产代码中,应将生成的DataTable结构Cache起来,此处略
  21.  
  22. foreach (PropertyInfo t in entityProperties)
  23. {
  24. //dt.Columns.Add(entityProperties[i].Name, entityProperties[i].PropertyType);
  25. dt.Columns.Add(t.Name);
  26. }
  27. //将所有entity添加到DataTable中
  28. foreach (object entity in entitys)
  29. {
  30. //检查所有的的实体都为同一类型
  31. if (entity.GetType() != entityType)
  32. {
  33. throw new Exception("要转换的集合元素类型不一致");
  34. }
  35. var entityValues = new object[entityProperties.Length];
  36. for (int i = ; i < entityProperties.Length; i++)
  37. {
  38. entityValues[i] = entityProperties[i].GetValue(entity, null);
  39. }
  40. dt.Rows.Add(entityValues);
  41. }
  42. return dt;
  43. }

之前用的是EF的数据写入。感觉EF在写入的时候有点慢,可能是自己没有找到EF正确的方法。

SQL SERVER 多数据导入的更多相关文章

  1. SQL Server 2005导入Excel表问题

    EXCEL导入到SQL Server经常出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项” 原因: SQL Server的导入导出为了确定数据表的字段类型,取excel文件的前8行来判别. ...

  2. 从SQL Server中导入/导出Excel的基本方法(转)

    从sql server中导入/导出 excel 的基本方法 /*=========== 导入/导出 excel 的基本方法 ===========*/ 从excel文档中,导入数据到sql数据库中,很 ...

  3. SQL Server 数据导入Mysql具体教程

    SQLServer2005数据导入Mysql到具体教程(測试) SQL SERVER数据导入MYSQL文件夹   1.Navicat for MySQL 版本号10.0.9 2.创建目标数据库 3.创 ...

  4. SQL Server高速导入数据分享

    SQL Server高速导入数据,能够尝试的方法例如以下:CTE.OpenRowSet/OpenDataSource.BULK INSERT.bcp.Shell. 以下依次介绍这几种办法. 1.CTE ...

  5. 数据库SQL Server DAC 导入导出数据到SQL Azure问题

    对Export data-tier application报错的处理 Error:SQL71564 这个问题是数据库中一些对象如MS_Description,MS_DiagramPane1不支持DAC ...

  6. 将Excel导入SQL Server 只能导入数字,其他数据变为NULL怎么解决?

    先新建一个TXT文件,把数据粘贴进去 再新建一个Excel文件,在菜单栏中选Data再选From Text 找到txt文件,点import 一定要选Text 点Finish,点OK. 接下来在往数据库 ...

  7. SQL Server数据导入导出的几种方法

    在涉及到SQL Server编程或是管理时一定会用到数据的导入与导出, 导入导出的方法有多种,结合我在做项目时的经历做一下汇总: 1. SQL Server导入导出向导,这种方式是最方便的. 导入向导 ...

  8. SQL SERVER数据导入

    我的博客已好久没有文字方面的记载了,好歹昨天已经结束软件设计师的考试了,今天怎么说也需要锻炼自己的写作能力.不然真怕自己又像上一年一样,一停就一年多了. 想好好学习数据库(SQL SERVER)方面的 ...

  9. SQL Server 2008导入、导出数据库

    SQL Server 2008数据库的导入.导出和Mysql的导出还有一定的区别,刚开始的时候完全摸不到方向,利用Microsoft SQL Server Management Studio进行导入. ...

随机推荐

  1. 读python源码--对象模型

    学python的人都知道,python中一切皆是对象,如class生成的对象是对象,class本身也是对象,int是对象,str是对象,dict是对象....所以,我很好奇,python是怎样实现这些 ...

  2. MAC Osx PHP安装指导

    php.ini的位置 Mac OS X中没有默认的php.ini文件,但是有对应的模版文件php.ini.default,位于/private/etc/php.ini.default 或者说 /etc ...

  3. js面向对象学习 - 对象概念及创建对象

    原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...

  4. C#制作简易屏保

    前言:前段时间,有个网友问我C#制作屏保的问题,我瞬间懵逼了(C#还可以制作屏保!).于是我去查阅相关资料,下面把C#如何制作屏保的过程及我学习过程的心得也记录下来,希望对需要的人能有帮助. 基本思路 ...

  5. Java程序员应该了解的10个面向对象设计原则

    面向对象设计原则: 是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton.Decorat ...

  6. iOS从零开始学习直播之3.美颜

      任何一款直播软件都必须进行美颜,不然哪来的那么多美女,所以技术改变世界,不只是说说而已.美颜在采集的时候就得就行,让主播实时看到直播的效果. 1.美颜原理   其实美颜的本质就是美白和磨皮,分别通 ...

  7. 如何区别exists与not exists?

    1.exists:sql返回结果集为真:not exists:sql不返回结果集为真.详解过程如图: exists not exists

  8. ExtJS 项目准备工作(一)

    首先,需要从网上下载两个文件,一个是SenchaCmd-6.2.0-windows-64bit(我的电脑是window 10 64位) 另一个是ExtJs6的源码包(ext-6.0.0.415). 源 ...

  9. SpringMVC初步

    SpringMVC框架介绍 1) Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面. Spring 框架提供了构建 Web 应用程序的全功 ...

  10. Aop动态生成代理类时支持带参数构造函数

    一.背景 在某些情况下,我们需要植入AOP代码的类并没有默认构造函数.那么此时动态生成的代理类也需要相同签名的构造函数,并且内部调用原始类的构造函数.自己折腾了1晚上没搞定,现在搞定了发出来供大家一起 ...