日期:2014-05-18  浏览次数:20928 次

客户端程序报错:“Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常
开发机上是10g客户端,VS2008,程序时普通的 windows 窗口程序

部署在一台安装了9i客户端的PC机上。连接数据库就报这个错误

我在制作部署包的时候其实是包含了 Oracle.DataAccess.dll 文件的,难道不会加载这个dll吗?

------解决方案--------------------
http://topic.csdn.net/u/20090506/14/f542e268-4e2e-412a-bb2d-868f6760012e.html
这里有答案
自己看看

------解决方案--------------------
检查连接字符串. 
检查客户端版本,有可能是兼容性问题
参考
------解决方案--------------------
探讨
参照答案我把开发环境和生产环境全部换成Oracle 11g 客户端后就一切正常了。


但是我很奇怪,我的应用程序在部署的时候在应用程序目录是添加了 Oracle.DataAccess.dll 文件的,按道理说exe文件执行的时候就可以在其当前目录去动态调用 Oracle.DataAccess.dll ,但是为什么还要我去安装Oracle 客户端呢?

------解决方案--------------------
这个你 要 先看看是不是版本的兼容行问题,按照 常理来 说DLL文件要 和EXE文件放在一起(客服端)
------解决方案--------------------
这个问题一开始也有可能是遇到了Oracle9i的Bug,这种情况也比较常见。

所有后来统一换成 11g 之后,就没有问题了。

实际上,你只把生产环境换成10g的客户端,应该也能解决问题。
------解决方案--------------------
探讨
这个问题一开始也有可能是遇到了Oracle9i的Bug,这种情况也比较常见。

所有后来统一换成 11g 之后,就没有问题了。

实际上,你只把生产环境换成10g的客户端,应该也能解决问题。

------解决方案--------------------
把 OraOps10.dll或OraOps10w.dll 拷到跟 oracle.dataaccess.dll同一目录下