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

  • 相关阅读:
    Codeforces Round #535 (Div. 3) 1108C
    Codeforces Round #536 (Div. 2) B. Lunar New Year and Food Ordering
    Leetcode--136. Single Number(easy)
    Leetcode--572. Subtree of Another Tree(easy)
    Leetcode--101. Symmetric Tree(easy)
    Leetcode--680. Valid Palindrome II(easy)
    2017百度之星资格赛 1003 度度熊与邪恶大魔王 背包DP
    台州 OJ 1704 Cheapest Palindrome 回文 区间DP
    洛谷 P1019 单词接龙 深搜
    UVA 11882 Biggest Number 深搜 剪枝
  • 原文地址:https://www.cnblogs.com/sherlock99/p/3658663.html
Copyright © 2011-2022 走看看