首页 > 数据库 >C# 大批量向数据库添加数据

C# 大批量向数据库添加数据

时间:2022-09-20 11:35:48浏览次数:73  
标签:dbConnection ColumnName C# 数据库 sqlbulkcopy 大批量 dt MySqlConnector Columns

       private static void SqlFastInsert(DbConnection dbConnection, DbTransaction trans, DataTable dt)
        {
            using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(dbConnection as SqlConnection, SqlBulkCopyOptions.Default, trans as SqlTransaction))
            {
                sqlbulkcopy.DestinationTableName = dt.TableName;
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
                }
                sqlbulkcopy.BatchSize = 10000;
                sqlbulkcopy.WriteToServer(dt);
            }
        }
        private static void MySqlFastInsert(DbConnection dbConnection, DbTransaction trans, DataTable dt)
        {
            MySqlConnector.MySqlBulkCopy mySqlbulkcopy = new MySqlConnector.MySqlBulkCopy(dbConnection as MySqlConnector.MySqlConnection, trans as MySqlConnector.MySqlTransaction);
            {
                mySqlbulkcopy.DestinationTableName = dt.TableName;
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    mySqlbulkcopy.ColumnMappings.Add(new MySqlConnector.MySqlBulkCopyColumnMapping(i, dt.Columns[i].ColumnName));
                }
                mySqlbulkcopy.WriteToServer(dt);
            }
        }
        /// <summary>
        /// Oracle快速写入
        /// </summary>
        /// <param name="dbConnection"></param>
        /// <param name="trans"></param>
        /// <param name="dt"></param>
        private static void OracelFastInsert(DbConnection dbConnection, DbTransaction trans, DataTable dt)
        {
            Oracle.ManagedDataAccess.Client.OracleBulkCopy oraclebulkcopy = new Oracle.ManagedDataAccess.Client.OracleBulkCopy(dbConnection as Oracle.ManagedDataAccess.Client.OracleConnection, Oracle.ManagedDataAccess.Client.OracleBulkCopyOptions.Default);
            {

                oraclebulkcopy.DestinationTableName = dt.TableName;
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    oraclebulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
                }
                oraclebulkcopy.BatchSize = 10000;
                oraclebulkcopy.WriteToServer(dt);
            }
        }

  

标签:dbConnection,ColumnName,C#,数据库,sqlbulkcopy,大批量,dt,MySqlConnector,Columns
From: https://www.cnblogs.com/liao-long/p/16710466.html

相关文章

  • 如何在 React 中进行 Axios POST 请求?
    如何在React中进行AxiosPOST请求?我们将制作一个AxiosPOST请求创建数据或将数据插入数据库。我们将在POST请求中发送请求参数,并且还将举例发送HTTP标头。在......
  • 我再也不会使用 create-react-app 了。
    我再也不会使用create-react-app了。对于我们必须先学习才能做的事情,我们通过做来学习。在你开始阅读之前,请给我一个关注和分享。如果您正在使用react并在启动新......
  • javascript中的控制语句
      1、forin用来遍历对象的,可以在属性未知的情况下遍历对象  2、forof:遍历数组和其他迭代对象,如:Map,Set等  3、trycatchfinally,捕获异常,无论异常是否发......
  • A Graph Convolutional Network with Adaptive Graph Generation and Channel Selecti
    motivation图神经网络已经被证明可以很好的解决长距离的语义依赖。但是之前的方法大多使用固定的图,如依赖于外部解析器生成的图(句法依存图等)图是固定的无法使用梯度......
  • 如何利用OpenHarmony ArkUI的Canvas组件实现涂鸦功能?
     简介ArkUI是一套UI开发框架,提供了开发者进行应用UI开发时所需具备的能力。随着OpenAtomOpenHarmony(以下简称“OpenHarmony”)不断更新迭代,ArkUI也提供了很多新的组件......
  • 如何使用 Prefect 中的任务、流和子流构建模块化数据流
    如何使用Prefect中的任务、流和子流构建模块化数据流以及如何在Prefect数据管道中定义状态和数据依赖关系磷反射是一个协调平面对于不断发展的数据世界。使用长......
  • 20220911 CCPC 网络赛
    第一次正式参加xcpc比赛,三个人都好久没写代码了,导致一堆题写出来了没调出来,很下饭。ADoubtvsLie模拟题,直接模拟题意即可。CGuess手玩一下找下规律即可。HMutip......
  • 20220918 ICPC 网络赛
    过了8个题,比上一场稍微好点了,但是被过了一片的I卡住了,有点可惜。CDeltetetheTree首先可以发现几个简单的性质:操作过程中点的度数不会增加,shrink操作不改变其他点......
  • twinBASIC 更新:2022 年 9 月 18 日
    twinBASIC更新:2022年9月18日亮点包括PictureBox控件的初始实现和用twinBASIC编写的自定义Windows事件查看器。经过迈克·沃尔夫(在推特上连接:@NoLongerSe......
  • RTL8367/N/RB/S/SC系列千兆交换机方案选型参考
    RTL8367系列方案主要有:RTL8367-VB-CG、RTL8367N-VB-CG、RTL8367RB-VB-CG、RTL8367S-CG、RTL8367SC-CG主要体现在封装和功能上:单一功能的是RTL8367-VB-CG(封装QFP-128)和RTL......