zoukankan      html  css  js  c++  java
  • dataTable写入数据库(大数据写入)

    例1:

    connectionStr,链接字符串
    dataTableName, 数据库中对应表名
    sourceDataTable DataTable 要写入数据库的DataTable
    字段要和表一致

    public static void SqlBulkCopyByDataTable(string connectionStr, string dataTableName, DataTable sourceDataTable, int batchSize = 100000)
    {
    using (System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection(connectionStr))
    {
    using (System.Data.SqlClient.SqlBulkCopy sqlBulkCopy = new System.Data.SqlClient.SqlBulkCopy(connectionStr,
    System.Data.SqlClient.SqlBulkCopyOptions.UseInternalTransaction))
    {
    try
    {
    sqlBulkCopy.DestinationTableName = dataTableName;
    sqlBulkCopy.BatchSize = batchSize;
    for (int i = 0; i < sourceDataTable.Columns.Count; i++)
    {
    sqlBulkCopy.ColumnMappings.Add(sourceDataTable.Columns[i].ColumnName, sourceDataTable.Columns[i].ColumnName);
    }
    sqlBulkCopy.WriteToServer(sourceDataTable);
    }
    catch (Exception ex)
    {

    throw ex;
    }
    }
    }
    }

    例2:

    1. //省略连接字符串  
    2.  SqlConnection conn = new SqlConnection(".....");  
    3.  conn.Open();  
    4.  //初始化类  
    5.  using (System.Data.SqlClient.SqlBulkCopy sqlBC = new System.Data.SqlClient.SqlBulkCopy(conn))  
    6.  {  
    7.      //获取需要导入的数据表  
    8.      DataTable dt = GetDataTable();  
    9.   
    10.      //每10W条数据一个事物  
    11.      sqlBC.BatchSize = 100000;  
    12.   
    13.      //超时时间  
    14.      sqlBC.BulkCopyTimeout = 60;  
    15.   
    16.      //表名Users  
    17.      sqlBC.DestinationTableName = "dbo.Users";  
    18.   
    19.      //字段对应,分表为原数据表字段名,和导入数据库的字段名  
    20.      sqlBC.ColumnMappings.Add("Access_ID", "MSSQL_ID");  
    21.      sqlBC.ColumnMappings.Add("Access_Name", "MSSQL_Name");  
    22.      //sqlBC.ColumnMappings.Add("Access_...", "MSSQL_...");  
    23.      //sqlBC.ColumnMappings.Add("Access_...", "MSSQL_...");  
    24.   
    25.      //导入到数据库  
    26.      sqlBC.WriteToServer(dt); 
  • 相关阅读:
    iOS之内存管理(ARC)
    分布式锁1 Java常用技术方案
    谈谈如何使用Netty开发实现高性能的RPC服务器
    前后端分离开发模式下后端质量的保证 —— 单元测试
    jquery实现"跳到底部","回到顶部"效果
    html内容超出了div的宽度如何换行让内容自动换行
    采用easyui+ajax+htm+ashx编写 通过用户对应角色 角色对应菜单 控制用户的访问权限
    javascript [] 与 {} 的区别
    图说设计模式
    T4教程1 T4模版引擎之基础入门
  • 原文地址:https://www.cnblogs.com/it-xcn/p/5889379.html
Copyright © 2011-2022 走看看