首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批量更新: StatementType枚举值,%4为无效/无效操作。连接已关闭

批量更新: StatementType枚举值,%4为无效/无效操作。连接已关闭
EN

Stack Overflow用户
提问于 2013-03-14 00:28:15
回答 1查看 586关注 0票数 0

我正在使用Enterprise Library的数据访问块。

我的代码正在进行大批量更新,但对于我们的一个客户,它总是失败,并出现以下异常之一:

代码语言:javascript
复制
System.ArgumentOutOfRangeException: The StatementType enumeration value, 4, is invalid.
Parameter name: StatementType
at System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
at System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
at System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)
at System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping)
at System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String srcTable)

代码语言:javascript
复制
System.InvalidOperationException: Invalid operation. The connection is closed. at
System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount) at
System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount) at
System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping) at
System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping) at
System.Data.Common.DbDataAdapter.Update(DataTable dataTable) at
Microsoft.Practices.EnterpriseLibrary.Data.Database.DoUpdateDataSet(UpdateBehavior behavior, DataSet dataSet, String tableName, IDbCommand insertCommand, IDbCommand updateCommand, IDbCommand deleteCommand, Nullable`1 updateBatchSize) at
Microsoft.Practices.EnterpriseLibrary.Data.Database.UpdateDataSet(DataSet dataSet, String tableName, DbCommand insertCommand, DbCommand updateCommand, DbCommand deleteCommand, UpdateBehavior updateBehavior, Nullable`1 updateBatchSize) at
EN

回答 1

Stack Overflow用户

发布于 2013-03-14 00:28:15

我已经在互联网上搜索了一段时间,但没有找到这些错误的含义或如何修复它们。现在我终于找到了答案,我正在分享它。

错误总是在10分钟后发生。它实际上是一个超时

提高我的transactionScope.TransactionOptions.Timeout的值没有帮助;检查MSDTC的配置是否正确也没有帮助。

我通过插入以下内容使其正常工作:

代码语言:javascript
复制
<system.transactions>
    <machineSettings maxTimeout="20:00:00"/>
</system.transactions>

添加到machine.config文件中,这些文件可以在以下位置找到:

代码语言:javascript
复制
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config

希望这能帮助到某个人,有一天...

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

https://stackoverflow.com/questions/15391000

复制
相关文章

相似问题

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