SQLBulkCopy与Transaction结合使用,并在每次复制批处理时触发事件

c# sqlbulkcopy sql-server

我目前通过SQLBulkCopy和Transactions将数据上传到MS SQL服务器。我希望能够在每个批次上传后引发一个事件(我已经尝试过SQLRowsCopied事件并且它不起作用,请参阅下面的引用)

MSDN报价:

在执行批量复制操作期间,连接中不支持任何操作(如事务活动),建议您不要使用在SqlRowsCopied事件期间使用的相同连接。但是,您可以打开不同的连接。

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.sqlrowscopied(v=vs.80).aspx

所以我基本上不能吃我的蛋糕并且吃它:(有没有人知道这个解决方案,因为我想在每个批次上传后发起一个事件。

谢谢你的帮助。

一般承认的答案

我终于决定使用内部交易了。如果遇到当前批次回滚的错误,ATM似乎工作正常。关于Ben上面的评论,我试过这个,但它不可能,它不像它循环通过一段代码,你可以举起一个事件。最后,我使用了notifyafter属性,该属性在复制了x行后引发了一个事件,以引发我的事件。可能不是最好的方式,但我无法找到更好的方法。希望有人觉得这很有用。




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因