各位看客使用oledb的方式进行数据的访问和操作在处理过程中捕获oledbexception
目的是想得到这个错误的级别,类似于sqlexception的Class根据这个错误的严重程度来判断进行不同的错误处理SqlException的class属性提供的严重级别msdn上有明确的说明
而oledbException提供的错误信息只有errCode  Errors  Message  SqlStates等等,但是这些都不能告诉我错误级别
其中errCode返回的是HResult,本想通过这个来判断错误级别,但是发现好像做不了不知道有没有做过的朋友,给点意见

解决方案 »

  1.   

    没搞过这个,我一般是将Description直接输出到错误记录表上。
      

  2.   

    主要目的是想根据错误级别进行下面的不同的操作有些时候我们的错误是sql文错了,这样并不影响下面的其它的db操作,有些时候是软硬件错误,这样需要关闭db连接,后面的操作也不会再进行了
      

  3.   

    如果你想进一步分析错误级别的话,首先要对数据库中的错误代码有所了解,否则无法判断;
    如果有了解了,你可以通过oledbexception对象的ErrorCode来做出判断,分出级别。不过这都是很底层的了,一般很少用到这么底层东西。
      

  4.   

    Knight94(愚翁)
    想问一下,通过hresult可以做吗
    如果可以做的话,咱们做,我获得了oledbErr.H头文件
    但是这里的信息只能告诉你是错误还是什么,并没有办法分辨出错误的严重程度想实现的就是类似于sqlexception中的class属性提供的级别判断伤脑筋
      

  5.   

    因为是oledb,并不是所有通过ole访问的数据库都提供错误严重程度这种信息,所以你不能要求.net的oledbexception能给你这方面的信息。但是oledbexception提供了ErrorCode属性,如果知道某个具体数据库的错误对照表的话,是可以通过这个属性来判断错误严重程度;否则,无法处理。
      

  6.   

    是啊但是这样做的话也不必选择oledb的方式连接数据库了呵呵,主流的数据库.net都提供了相应的连接方式