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",选择“属性”选项,在"安全"选项卡中设置如下即可:

原文地址:https://www.cnblogs.com/wonder223/p/5725019.html