本文主要是介绍C#调用Oracle.DataAccess报错,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【前言】
最近开发项目不想再使用低版本的.Net Framework,因为开发工具升级了,并且调用的第三方库也都在新版本中有不错的体验,我们何必要墨守成规呢?!所以,最终我使用VS2015+.Net Framework4.0+Oracle 11g Client开发新项目。
【问题描述】
我这边开发环境都搭建好了,但编译时却有警告提示“warning CS0618: 'OracleConnection' is obsolete: 'OracleConnection has been deprecated. http://go.microsoft.com/fwlink/?LinkID=144260'”。好多开发朋友都说这就是个提示,不必大惊小怪的,但强迫症还是让我更换掉了以前引用的“System.Data.OracleClient”库,改成微软推荐的“Oracle.DataAccess”库。
编译OK了,没有任何警告和报错,然后将程序打包给客户测试。杯具了~客户那边链接数据库时提示“‘Oracle.DataAccess.Client.OracleConnection’的类型初始值设定项引发异常”,我就奇怪了,为什么我开发测试都没问题,客户到底干了什么?
【问题分析】
上网找了好多类似情况的解决方法,有人说是跟这个“Oracle.DataAccess”库版本有关系,我还特意看了一下我的库真是v2.0版本的应该没问题。如图1所示:
图1
还有人说跟Oracle客户端安装版本和多少位有直接关系。但客户这里安装的都是我要求的Oracle 11g client(32位)版本,并且我还特意将软件安装包发给大家(以免自己在网上找的版本不正确)所以,客户的问题应该跟版本没多大关系。
【解决方法】
最后实在没有办法了,我远程到客户的电脑,找到环境变量中的“Path”变量对应的值,从中找到Oracle执行目录。如图2所示:
图2
根据路径找到指定的目录,发现我的天啊,客户电脑上居然没有。详细询问后得知,他将目录重命名了,说是以为要跟服务器路径一致呢!我哭的心都有了!!!
最后将Oracle客户端安装的目录名称修改回Path值中的名称即可。
注:如果修改回来还是不好使,请卸载Oracle客户端,重新安装一遍。
这篇关于C#调用Oracle.DataAccess报错的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!