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(); } }
代码如上,实际上还是比较简单的,就是本地赋值好表,之后对应上服务器上的目标表,直接使用上面的程式就OK了。
DataTable直接到服务器的Table.
但是也有一个坑在那边,必须两边开启一个服务。
参照下面的网页
http://www.lmwlove.com/ac/ID1144
Win7中"已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。"
因为在程序中用到了TransactionScope对象,测试的时候报出了"已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。"的错误,本人是Win7系统,解决方法如下:
打开"控制面板"- >"管理工具"- >"组件服务" 如下图:
然后依次双击"计算机"- >"我的电脑"- >"Distributed Transaction Coordinator",然后右键点击"本地DTC",选择“属性”选项,在"安全"选项卡中设置如下即可: