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

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,并使用兼容模式加管理员身份安装
32位C# 桌面程序 使用 Oracle.DataAccess.dll连接64位Oracle_第1张图片
在两个文件中的 标签中加入如下代码:

         <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 (根据自己的实际配置)
32位C# 桌面程序 使用 Oracle.DataAccess.dll连接64位Oracle_第2张图片
step3. 安装好之后,在项目中重新引用Oracle.DataAccess.dll,注意选择上面安装的32位的客户端中的!然后就成了。

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

你可能感兴趣的:(Oracle,C#)