32位C# 桌面程序 使用 Oracle.DataAccess.dll连接64位Oracle

1 篇文章 0 订阅

1、Oracle服务端为64位,则连接客户端也只能为64位?
2、既然客户端需要64位,那c#程序引用dll是否也需要是64位?
3、c#应用程序为32位,又如何使用64位dll?
4、是否只能替换Oracle服务端为64位来解决?


乱搞 解决了!

问题描述:c#32位桌面程序,使用Oracle.DataAccess.dll 做连接驱动,但是Oracle服务端为64位,客户端位64位,导致桌面应用无法连接到数据库。

起初以为64位电脑无法装32位Oracle客户端,而且还以为32位客户端不能连接64位服务器… 蠢得一批!

解决方法:
step1. 安装一个与服务器同版本的32位客户端,这里如果提示安装不兼容,可以修改下图中的两个文件来兼容win10,并使用兼容模式加管理员身份安装
在这里插入图片描述
在两个文件中的 <CERTIFIED_SYSTEMS></CERTIFIED_SYSTEMS> 标签中加入如下代码:

         <OPERATING_SYSTEM RELEASE="6.2">
         	 <VERSION VALUE="3"/>
         	 <ARCHITECTURE VALUE="32-bit"/>
         	 <NAME VALUE="Windows 10"/>
         	 <ENV_VAR_LIST>
         	     <ENV_VAR NAME="PATH" MAX_LENGTH="1023" />
         	 </ENV_VAR_LIST>
         </OPERATING_SYSTEM>

step2. 配置好客户端的net manager (根据自己的实际配置,这里一定要先配置好,不然程序依旧会报错:ORA-12154: TNS: 无法解析指定的连接标识符)
在这里插入图片描述
step3. 安装好之后,在项目中重新引用Oracle.DataAccess.dll,注意选择上面安装的32位的客户端中的!然后就成了。

ps:没有卸载之前的64位客户端,所以目前是两个都有,这样在不同项目需求上可以选择引用不同的版本就行了。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值