公司需维护一个12年写的老C#程序,刚大学毕业经验不足,而且本业是java,该C#程序使用OraOLEDB.Oracle.1连接数据库,经过百度大量的CSDN和其他论坛,均为解决问题,本人Oracle是64位,这个是用plsql登陆后输入下面sql后查出的,另本人计算机位数为64位。
select * from $version
基于报错,我试了以下方法:
方法一:注册OraOLEDB11.dll
在其他地方百度的,我照做了:将oracle的安装目录下的bin目录下的OraOLEDB11.dll分别复制到了C:\Windows\System32下和C:\Windows\SysWOW64下,在win10系统左下角搜索cmd后以管理员身份打开(省事!不然会报“dll已加载,DllRegisterServer调用失败”的错误!)
分别进入过对应的目录,运行如下代码
regsvr32 OraOLEDB11.dll
均显示注册成功。但重启电脑后,在vs端重新进行生成后仍报未在本地计算机注册“OraOLEDB.Oracle.1”的错误。后又在cmd进入oracle的安装目录的bin目录,执行regsvr32 oraclient11.dll,再重启又报错!哪怕我输入他们的全路径:
regsvr32 D:\app\Ledo\product\11.2.0\dbhome_1\BIN\OraOLEDB11.dll
所以我又试了方法二!
方法二:下载ODAC驱动,解压并且设置环境变量
1.下载 ODAC(根据自己的情况选择对应版本)
链接:https://pan.baidu.com/s/1nCOvV_bOGY1Lu61govq8sw
提取码:qtm8
2.解压后进入目录下面在上面的目录输入cmd命令,或者直接启动cmd进入安装目录后输入下面指令进行安装:
install.bat all D:\app\Ledo\app\product\11.2.0\Client_2 odac
3.配置环境变量到PATH
D:\app\Ledo\product\11.2.0\Client_2;
D:\app\Ledo\\product\11.2.0\Client_2\bin;
重启电脑让环境变量生效,然后生成策略启动,嘿,我的还是不行!
方法三:安装Oracle客户端,本人只安装了64位
被这个报错弄的怀疑人生,弄了好几天,真的好几天都在重复上面几个工作,搜了一大堆,都是上面几个方法,后来知道了Oracle有客户端,下载连接如下:
1.安装Oracle客户端我只有64位的安装包:
链接:https://pan.baidu.com/s/15SBGNRS-Jh4a0VNJw7lRHw
提取码:zw9r
2.安装完成后配置环境到PATH
D:\app\Ledo\product\11.2.0\dbhome_2
D:\app\Ledo\product\11.2.0\dbhome_2\bin
启动。结果还是报错,而且引发了另一个错误: oracleclient11.dll没有被指定在windows上运行。
解决链接:https://blog.csdn.net/qq_43618249/article/details/131095545?spm=1001.2014.3001.5502
方法四:安装轻量级Oracle数据库
百度网盘下载链接如下,选择对应的版本安装:
链接:https://pan.baidu.com/s/10xIvjO9JxmZsWNo0xFfTNw
提取码:07qu
安装完成直接解压就行,然后配置环境变量到PATH,并且上移到Oracle数据库服务端的上面
然而还是没用啊,气死我了。
方法五:更改C#连接驱动
最后把C#的指令驱动改成:MSDAORA.1。启动,没问题了。哈哈,因为在 VS上面运行debug的是×86(32位)平台。