zoukankan      html  css  js  c++  java
  • SQL Server批量插入数据

     1 public bool SaveCompareResult(List<CompareResult> c)
     2         {
     3             bool flag = false;
     4             using (var db = new AOPContext())
     5             {
     6                 SqlConnection sqlConn = new SqlConnection(db.Database.Connection.ConnectionString);
     7                 SqlBulkCopy bulkCopy = new SqlBulkCopy(db.Database.Connection.ConnectionString);
     8                 try
     9                 {
    10                     bulkCopy.DestinationTableName = "CompareResult"; //要写入的表的名字
    11                     bulkCopy.BatchSize = c.Count;  
    12                     DataTable dt = new DataTable();
    13                     dt.Columns.AddRange(new DataColumn[]{  
    14                                         new DataColumn("CID",typeof(Guid)), 
    15                                         new DataColumn("RID",typeof(Guid)),
    16                                         new DataColumn("CType",typeof(int)), 
    17                                         new DataColumn("CChildType",typeof(int)),
    18                                         new DataColumn("Value1",typeof(string)), 
    19                                         new DataColumn("Value2",typeof(string)), 
    20                                         new DataColumn("Value3",typeof(string)), 
    21                                         new DataColumn("Value4",typeof(string)), 
    22                                         new DataColumn("Value5",typeof(int)), 
    23                                         new DataColumn("FileType",typeof(string)), 
    24                                         new DataColumn("Operator",typeof(string)), 
    25                                         new DataColumn("OperateDate",typeof(DateTime))});
    26 
    27                     foreach (CompareResult cr in c)
    28                     {
    29                         DataRow r = dt.NewRow();
    30                         r[0] = cr.CID;
    31                         r[1] = cr.RID;
    32                         r[2] = cr.CType;
    33                         r[3] = cr.CChildType;
    34                         r[4] = cr.Value1;
    35                         r[5] = cr.Value2;
    36                         r[6] = cr.Value3;
    37                         r[7] = cr.Value4;
    38                         r[8] = cr.Value5;
    39                         r[9] = cr.FileType;
    40                         r[10] = cr.Operator;
    41                         r[11] = cr.OperateDate;
    42                         dt.Rows.Add(r);  
    43                     }
    44                     sqlConn.Open();
    45                     bulkCopy.WriteToServer(dt);
    46                     flag = true;
    47                 }
    48                 catch (Exception ex)
    49                 {
    50                     LoggerHelper.Error("SaveCompareResult执行出错: ", ex);
    51                 }
    52                 finally
    53                 {
    54                     sqlConn.Close();
    55                     if (bulkCopy != null)
    56                         bulkCopy.Close();
    57                 }
    58             }
    59             return flag;
    60         }

     要点

    1 获得连接字符串

    2 构造datatable

    3 构造数据表

    4 异常处理

    实践中性能很好

    参考 http://blog.csdn.net/tjvictor/article/details/4360030

  • 相关阅读:
    html之长文本框置顶
    Red Hat Enterprise Linux Server 6.5安装GCC 4.9.2
    精通正则表达式
    解决UNION ALL合并两个结果集后排序的问题
    ELK搭建日志管理系统记录
    Spring Boot使用@ConfigurationProperties 读取自定义的properties的方法
    maven配置profile,按指定环境打包
    java自定义标签,tld文件,获取数据字典的值
    JAVA实现RSA签名、验签
    jquery.validate.js中的remote用法
  • 原文地址:https://www.cnblogs.com/sherlock99/p/3658663.html
Copyright © 2011-2022 走看看