【发布时间】:2012-10-09 09:31:07
【问题描述】:
我需要捕获以下特定异常:
System.Data.OleDb.OleDbException 被捕获 ErrorCode=-2147467259
Message="您请求的对表格的更改不成功 因为他们会在索引、主键、 或关系。更改字段中的数据或包含 重复数据、删除索引或重新定义索引以允许 重复条目,然后重试。" Source="Microsoft JET 数据库 引擎”堆栈跟踪: 在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult 小时) 在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams、对象和执行结果) 在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(对象和执行结果) 在 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior 行为,对象和执行结果) 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior 行为,字符串方法) 在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
我不确定ErrorCode 是什么,但它看起来不可靠。
我可以依赖 Message 在各个平台上相同吗?
我能以某种方式使用堆栈跟踪中的OleDbHResult hr 值吗? (见https://stackoverflow.com/a/991660/327528)
在Message 中搜索duplicate 和primary key 之类的词是唯一的解决方案吗?
【问题讨论】:
标签: .net exception-handling oledbconnection hresult