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); 
  • 相关阅读:
    缺席多年的东哥,重回博客了
    使用VMware安装CentOS 7
    Linux CentOS 7 搭建 Tomcat 8 服务器
    海思HI3518EV200+AR0130开发板DIY——前篇
    Keyshot+AD渲染PCB效果图
    ESP8266/ESP32模块晶振频偏调试
    关于摄像头PCB图设计经验谈
    docker容器虚拟化技术
    数据分析章节(一):初始数学之美
    Nginx:反向代理
  • 原文地址:https://www.cnblogs.com/it-xcn/p/5889379.html
Copyright © 2011-2022 走看看