zoukankan      html  css  js  c++  java
  • C#中大批量数据导入

     Database db = DatabaseFactory.CreateDatabase();
                    using (SqlConnection connection = (SqlConnection)db.CreateConnection())
                    {
                        try
                        {
                            connection.Open();
                            string tableName = "BG_Payment_Details";
                            using (SqlBulkCopy bulk = new SqlBulkCopy(connection, SqlBulkCopyOptions.KeepIdentity, null)
                            {
                                DestinationTableName = tableName,
                                BatchSize = 10000
                            })
                            {
                                foreach (DataColumn dc in dsPayment.Tables[1].Columns)
                                {
                                    bulk.ColumnMappings.Add(dc.ColumnName, dc.ColumnName);
                                }
                                bulk.WriteToServer(dsPayment.Tables[1]);
                                bulk.Close();
                            }
                        }
                        catch (Exception exp)
                        {
                            throw exp;
                        }
                        finally
                        {
                            connection.Close();
                        }
                    }
    View Code

    代码如上,实际上还是比较简单的,就是本地赋值好表,之后对应上服务器上的目标表,直接使用上面的程式就OK了。

    DataTable直接到服务器的Table.

    但是也有一个坑在那边,必须两边开启一个服务。

    参照下面的网页

    http://www.lmwlove.com/ac/ID1144

    Win7中"已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。"

    因为在程序中用到了TransactionScope对象,测试的时候报出了"已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。"的错误,本人是Win7系统,解决方法如下:
    打开"控制面板"- >"管理工具"- >"组件服务" 如下图:

    然后依次双击"计算机"- >"我的电脑"- >"Distributed Transaction Coordinator",然后右键点击"本地DTC",选择“属性”选项,在"安全"选项卡中设置如下即可:

  • 相关阅读:
    随机验证码实验报告
    输出验证
    原码,反码,补码!
    枚举验证结论
    Java第一次考试有感
    暑假第七周学习进度报告
    暑假第六周学习进度报告
    MySQL学习笔记(22)——常用的日期时间函数
    execute()返回值——true or false
    ORM
  • 原文地址:https://www.cnblogs.com/wonder223/p/5725019.html
Copyright © 2011-2022 走看看