SqlDataAdapter UpdateBatchSize行错误

时间:2011-09-15 21:38:49

标签: sqldataadapter updatebatchsize

DataAdapter具有您可以设置的ContinueUpdateOnError属性  到'True'将继续处理DataAdapter.Update  命令,即使遇到错误。这是理想的,所以我可以  捕获无法插入的每行数据的错误。然而,  如果批处理关闭,这只能正常工作  (DataAdapter.UpdateBatchSize = 1)。

如果DataAdapter.UpdateBatchSize设置为0或其他数字  将打开批处理,并在记录中发生错误  批处理,然后整个批处理未通过更新。显然,这是  不是我想要发生的事情。

理想情况下,我想混合使用这两种方案。我想成为  能够使用批处理,从而减少往返次数  插入行的数据库,但同时我想成为  能够捕获每个单独的行错误(对于某些人来说)  打开批处理时,原因不起作用,以及ContinueUpdateOnError  设置为“True”)。对我来说,看起来它必须是一种方式或  另一个。我或者单独插入每一行,然后去旅行  每个插入的数据库,能够捕获每一行的错误,或者  我尝试将批次发送到服务器,如果批次中的行失败,  那么整批都失败了。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

从MSDN的页面“DataAdapter.ContinueUpdateOnError Property”:

  

如果将ContinueUpdateOnError设置为true,则在更新行期间发生错误时不会引发异常。将跳过行的更新,并将错误信息放在错误行的RowError属性中。 DataAdapter继续更新后续行。

从MSDN的页面“使用DataAdapter执行批处理操作(ADO.NET)”:

  

批处理执行与每个单独语句的执行具有相同的效果。语句按语句添加到批处理的顺序执行。批处理模式下的错误处理方式与批处理模式禁用时的处理方式相同。

所以要么你做错了,要么微软的文件不可靠。