DataAdapter 有一个 ContinueUpdateOnError 属性,您可以将其设置为“True”,这将继续处理 DataAdapter.Update 命令,即使遇到错误也是如此。这是理想的,所以我可以在每行无法插入的数据中捕获错误。但是,这仅在批处理关闭 (DataAdapter.UpdateBatchSize = 1) 时才能正常工作。
如果 DataAdapter.UpdateBatchSize 设置为 0 或其他将打开批处理的数字,并且批处理记录中发生错误,则整个批处理将无法更新。显然,这不是我想要发生的。
理想情况下,我想混合使用这两种情况。我希望能够使用批处理,从而在插入行时减少到数据库的往返次数,但同时我希望能够在每个单独的行错误发生时捕获它(这对于打开批处理时某些原因不起作用,并且 ContinueUpdateOnError 设置为“True”)。对我来说,它看起来必须是一种或另一种方式。我要么单独插入每一行,并为每个插入访问数据库,并能够捕获每一行错误,要么我尝试将批次发送到服务器,如果批次中的一行失败,那么整个批次都会失败。
有什么想法吗?