• SqlBulkCopy - 批量写入数据库


    SqlBulkCopy 是 ADO.NET 中的一种类,它提供了高性能的批量数据插入功能。SqlBulkCopy 类位于 System.Data.SqlClient 命名空间中,并且适用于使用 SQL Server 数据库。

    ADO.NET 是 Microsoft .NET Framework 的一部分,提供了与数据存储的连接、检索和操作相关的功能。它是一种用于访问各种数据源(如关系数据库、XML 数据、文件等)的技术。

    SqlBulkCopy 类利用了 ADO.NET 提供的数据访问组件和连接对象,以一种高效的方式实现了大量数据的批量插入操作。通过 SqlBulkCopy,我们可以将源数据(DataTable 或 DataReader)高效地复制到目标表或目标数据库中,从而减少插入操作的时间和资源消耗。

    总结来说,SqlBulkCopy 是 ADO.NET 提供的一个用于批量数据插入的类。它是在连接到 SQL Server 数据库时使用的,并且为开发人员提供了一个快速、可靠的方式来处理大规模的数据插入需求。

    以下是使用 SqlBulkCopy 执行批量插入的示例代码:

    using System;
    using System.Data;
    using System.Data.SqlClient;
    
    class Program
    {
        static void Main()
        {
            string connectionString = "Your_Connection_String";  // 连接字符串
    
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
    
                using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
                {
                    bulkCopy.DestinationTableName = "Your_Destination_Table";  // 目标表名
                    bulkCopy.ColumnMappings.Add("Source_Column1", "Destination_Column1");  // 列映射
                    bulkCopy.ColumnMappings.Add("Source_Column2", "Destination_Column2");  // 列映射
                    // 添加更多列映射...
    
                    DataTable dataTable = new DataTable();
                    dataTable.Columns.Add("Source_Column1", typeof(string));  // 源表列
                    dataTable.Columns.Add("Source_Column2", typeof(int));  // 源表列
                    // 添加更多源表列...
    
                    // 向 DataTable 中添加数据
                    dataTable.Rows.Add("Value1", 1);
                    dataTable.Rows.Add("Value2", 2);
                    // 添加更多数据行...
    
                    bulkCopy.WriteToServer(dataTable);  // 执行批量插入操作
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    在这个示例中,你需要替换 Your_Connection_String 为你的实际连接字符串,Your_Destination_Table 为目标表的名称,并添加适当的列映射和数据行到 DataTable 中。

    请注意,在使用 SqlBulkCopy 时,确保目标表的结构与源 DataTable 的结构相匹配,且列映射正确,才能成功执行批量插入

  • 相关阅读:
    BUUCTF Misc 隐藏的钥匙 & 另外一个世界 & FLAG & 神秘龙卷风
    多态2........
    [附源码]java毕业设计网上招聘系统
    STM32的光敏检测自动智能窗帘控制系统proteus设计
    【云原生Kubernetes系列】KubeSphere容器调度平台
    在Cygwin环境下构建和使用EmberZNet PRO Zigbee Host应用程序
    基于MSP430送药小车 ----- 拓展篇【2021年全国电赛(F题)】
    跨交换机的VLAN
    Linux之(14)shell(6)gawk进阶
    《阿里云天池大赛赛题解析》——O2O优惠卷预测
  • 原文地址:https://blog.csdn.net/qq_39034148/article/details/132827721