zoukankan      html  css  js  c++  java
  • 解决“The type initializer for'Oracle.DataAccess.Client.OracleConnection' threw an exception ”异常

     上次做了一个小的EXE应用程序,发给老大后,昨天老大告诉我程序在服务器端运行会抛出异常。

      今天我从早上上班一直弄到写这篇BLOG,才解决掉。

      设置断点进去跟踪发现是在Conncetion.open()时,会抛出异常,异常显示

      提供程序与此版本的ORACLE客户机不兼容

      服务器版本:

       异常如下:

      

    详细错误清单:(我用GG翻译了)

     

     主要是不能连接ORACLE数据库,连接DLL用的是 版本为2.112.1.2的ORACLE.DATAACCESS.DLL,在我自己的电脑上运行没有问题,在服务器端运行就会抛出异常。

     为了解决问题我尝试了用更新的版本。但是他还是会抛出同样的问题。

     最后我想起了.NET中自带有微软的ORACLE访问借口,于是我就用了SYSTEM.DATA.ORACLECLIENT这个组件,问题得到了解决。

     部分代码:(注释的就是调用的ORACLE.DATAACCESS.DLL组件的方法)

    View Code
     1  protected DataSet GetData()
     2         {
     3 
     4             //Oracle.DataAccess.Client.OracleConnection conn = new Oracle.DataAccess.Client.OracleConnection(connstr);
     5             System.Data.OracleClient.OracleConnection conn = new OracleConnection(connstr);
     6             try
     7             {
     8                 conn.Open();
     9                 //Oracle.DataAccess.Client.OracleCommand com = conn.CreateCommand();
    10                 OracleCommand com = conn.CreateCommand();
    11                 com.CommandText = "select * from DL_GOVT_NOTICE_INFO";//"select * from DL_GOVT_NOTICE_EXP_HIST";
    12                 //Oracle.DataAccess.Client.OracleDataAdapter apter = new Oracle.DataAccess.Client.OracleDataAdapter(com);
    13                 OracleDataAdapter apter = new OracleDataAdapter(com);
    14                 DataSet ds = new DataSet();
    15                 apter.Fill(ds);
    16                 apter.Dispose();
    17                 conn.Dispose();
    18                 return ds;
    19             }
    20             catch (Exception ex)
    21             {
    22                 this.LabShowInfo.Text = "Error: " + ex.Message;
    23                 conn.Close();
    24                 return null;
    25             }
    26            
    27         }


     详细情况我现在也还很糊涂,希望对有出现类似情况的同志有所帮助。

     嗯,VS工具是2008中文版!

      

  • 相关阅读:
    hive的常用操作
    更改Oracle字符集避免乱码
    SQLLDR导入乱码问题的解决
    linux环境下安装oracle步骤和自启动oracle
    解决Sql Server 日志满了,设置收缩
    解决sql server死锁
    boolean b=true?false:true==true?false:true;
    "无法删除数据库,因为该数据库当前正在使用"问题解决
    C#使用wkhtmltopdf,把HTML生成PDF(包含分页)
    小技巧:方便开机打开多个程序
  • 原文地址:https://www.cnblogs.com/ganqiyin/p/2584881.html
Copyright © 2011-2022 走看看