zoukankan      html  css  js  c++  java
  • c#向数据库插入较大数据(SqlBulkCopy)

    因为要向数据库添加一些数据,数据量较大

    1.使用sql语句批量提交速度较慢

    2.用事物批量提交,速度一般

    3.用SqlBulkCopy方法写入数据,速度较快

          /// <summary>
            /// 使用SqlBulkCopy方法向数据库中写入数据,一般用于大量数据写入,效率较高
            /// 注:使用此方法必须保证传如的DataTable每列列名和数据库一一对应
            /// </summary>
            /// <param name="datadt">要导入的数据源</param>
            /// <param name="dbTableName">要导入到数据库的数据表名</param>
            public void ExecuteSqlBulkCopy(DataTable datadt, string dbTableName)
            {
                using (SqlConnection conn = new SqlConnection(boName))
                {
                    using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(boName, SqlBulkCopyOptions.UseInternalTransaction))
                    {
                        try
                        {
                            sqlbulkcopy.DestinationTableName = dbTableName;
                            for (int i = 0; i < datadt.Columns.Count; i++)
                            {
                                sqlbulkcopy.ColumnMappings.Add(datadt.Columns[i].ColumnName, datadt.Columns[i].ColumnName);
                            }
                            sqlbulkcopy.WriteToServer(datadt);
                        }
                        catch (System.Exception ex)
                        {
                            throw ex;
                        }
                    }
                }
            }

    1w条数据,1秒左右

  • 相关阅读:
    Kendo UI
    Docker
    jQuery DataTables && Django serializer
    MySQL ODBC for Linux
    mongoengine
    Python之多线程
    Python中的正则表达式
    通过恢复目录(Catalogue)进行PDB级别的PITR恢复
    执行PDB的PITR恢复失败的说明
    在PDB级别中如何切换或重建UNDO表空间
  • 原文地址:https://www.cnblogs.com/feigao/p/5219884.html
Copyright © 2011-2022 走看看