读书人

SqlBulkCopy 的使用有关问题

发布时间: 2013-10-24 18:27:21 作者: rapoo

SqlBulkCopy 的使用问题。
程序要进行的大数据量的更新或者插入,以前使用的是SqlDataAdapter的update来实现的。
现在为了提高效率,想使用SqlBulkCopy 的WriteToServer来实现。

有以下问题咨询一下大家。
1,WriteToServer相比SqlDataAdapter的update,有什么缺点?或者使用的注意事项?
2,WriteToServer更新时,如果其中一条数据有问题,更新失败,是不是所有的数据都不更新?
3,WriteToServer还能知道更新了多少条数据啊?类似update的返回值。

谢谢回答了,万分感谢
[解决办法]
之前搞错了。最近又看了下
1、new sqlbulkcopy的时候,里面有重载方法,可以使用事物。
SqlBulkCopyOptions.UseInternalTransaction 这是个枚举

2.
sqlbulk.SqlRowsCopied +=new SqlRowsCopiedEventHandler(OnRowsCopied)

可以添加事件
private void OnRowsCopied(object sender, SqlRowsCopiedEventArgs args)

args里面就能取到受影响行数

SqlBulkCopy 的使用有关问题
[解决办法]
第二条可以用上数据库的事物,要么全做要么全部做,这样就能解决插入一半报错的问题,很好用的,之后再做数据验证,这样可以
[解决办法]
SqlBulkCopy.WriteToServer 方法
将所有行从数据源复制到 SqlBulkCopy 对象的 DestinationTableName 属性指定的目标表中。

参考:
http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlbulkcopy.writetoserver.aspx

读书人网 >SQL Server

热点推荐