首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SqlDataAdapter UpdateBatchSize行错误

SqlDataAdapter UpdateBatchSize行错误
EN

Stack Overflow用户
提问于 2011-09-15 21:38:48
回答 1查看 807关注 0票数 0

DataAdapter有一个ContinueUpdateOnError属性,您可以将其设置为“True”,它将继续处理DataAdapter.Update命令,即使遇到错误。这是非常理想的,因此我可以在每一行无法插入的数据上捕获错误。但是,只有在关闭批处理(DataAdapter.UpdateBatchSize = 1)时才能正常工作。

如果将DataAdapter.UpdateBatchSize设置为0或其他将打开批处理的数字,并且在批处理记录中发生错误,则整个批处理将失败。很明显,这不是我想要的。

理想情况下,我希望将这两种场景混合在一起。我希望能够使用批处理,从而减少在行插入时对数据库的往返,但同时,我希望能够在出现每个单独的行错误时捕获它(由于某种原因,在打开批处理时不能工作,并且ContinueUpdateOnError设置为'True')。在我看来,它似乎必须有这样或那样的方式。我要么为每个插入单独插入一行,然后访问数据库,并能够捕获每一行错误,要么尝试将批处理发送到服务器,如果批处理中某一行失败,则整个批处理失败。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2012-02-27 22:50:53

来自MSDN的页面"DataAdapter.ContinueUpdateOnError属性“:

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

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

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

所以,要么你做错了什么,要么微软在这方面的文档不可靠。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7437755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档