C#使用System.Data.OracleClient连接Oracle数据库。我的是window7/64位系统,装了一个64位的oralce 11G r2 客户端是64位的 用VS10调试错误信息如下:

尝试加载Oracle客户端库时引发BadImageFomatException。如果在安装64位Oracle客户端组件的情况下以32位模式运行,将出现此问题。

错误原因是VS调试工具是32位,连接的程序所用的OracleClient也是64位的,从而导致兼容问题。当然,如果在64位操作系统上按64位重新编译安装64位的Oracle客户端再重新编译程序也是能解决问题的。这里我们介绍一种简单的方法 如果本地安装oracle数据库根本不用安装客户端就可以连接程序。

实际上,System.Data.OracleClient所指向的是PATH环境变量下的oci.dll。因此,我们只要让程序能够找到64位或者32位的oci.dll就可以了。方法如下:

  1. 下载,并解压,如C:\instantclient-basic-win-x86-64-11.1 这个是32位的客户端C:\instantclient-basic-nt-11.2.0.3.0 如果你用VS最好选择32位的64位的我试过好像调试的时候还是报错。当然你是部署到IIS肯定两个都可以的。

2. 在系统的环境变量PATH中加入以上路径。

之后再运行程序,程序会依照PATH路径寻找oci.dll,程序会自动找到32位或者64位的oci.dll就能连接上数据库了。

Oracle数据库下载链接:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

如果还是不行,请下载Oracle最新客户端:http://www.oracle.com/technetwork/topics/winsoft-085727.html

VS2010在64位系统中连接64位Oracle出现的问题和解决方法的更多相关文章

  1. 针对Windows 64位系统中Matlab没有LED Control Activex控件的解决方法

    Win 10 64bits系统中Matlab 64位软件没有LED Control Activex控件,LED ActiveX Control控件位于Gauges Blockset模块中,而Gauge ...

  2. <linux系统c语言生成.so文件,生成64位可执行文件,在64位系统中运行32位的可执行文件>

    1.linux 系统c语言生成.o文件,---->gcc -m64 -c -fPIC test.c -o test.o2.linux 系统c语言生成.so文件,----->gcc -sha ...

  3. 64位系统中连接Access数据库文件的一个问题

    近日在windows 7 64位系统中编译以前写的程序,发现在连接Access数据库时总是出现异常,提示“Microsoft.Jet.OLEDB.4.0”未在本机注册,同样的代码在32位的xp系统中却 ...

  4. int在64位操作系统中占多少位?

    仍然是32位. 曾经是这样的:16位操作系统中,int 占16位:在32位操作系统中,int 占32位.但是现在人们已经习惯了 int 占32位,因此在64位操作系统中,int 仍为32位.64位整型 ...

  5. 关于32位程序在Win7&64位系统中连接Microsoft Excel数据源的问题

    最近在新公司电脑上跑以前的selenium测试框架的时候,抛出了如下的错误 出现的是ODBC Driver问题:[Microsoft][ODBC Driver Manager] Data source ...

  6. 64位系统下8G内存仅使用到4G问题的解决方法

    笔记本:联想E46G 当前bios版本:25CN32WW 内存:DDR3 133 4G × 2 问题:bios信息显示8G,win7和ubuntu 在64位下使用情况仅4G 准备工作1:bios版本和 ...

  7. python一些模块的exe安装包在windows的64位系统里识别不到已安装Python目录的解决方法

    在windows里安装python一些模块时候,有时候源码安装比较困难,pip install也各种报错,这时候最喜欢用别人编译好的exe或者whl文件来安装,但是在windows的64位系统里,如果 ...

  8. 64位系统中开启32位应用,特别是OLEDB

    IIS7 - Running 32-bit and 64-bit ASP.NET versions at the same time on different worker processes IIS ...

  9. win10 64位专业版系统中显示32位dcom组件配置的方法

    word.excel是32位的组件,当用户64位系统在运行窗口中输入dcomcnfg命令时,在打开的组件服务管理窗口,是找不到Microsoft Excel.word程序的.另外,Windows 环境 ...

随机推荐

  1. poj2186Popular Cows(Kosaraju算法--有向图的强连通分量的分解)

    /* 题目大意:有N个cows, M个关系 a->b 表示 a认为b popular:如果还有b->c, 那么就会有a->c 问最终有多少个cows被其他所有cows认为是popul ...

  2. java中异常注意的细节1

    /* public class Test{ public static void main(String[] args){ int i=0; try{ func();//区别就是该函数抛出的异常被封装 ...

  3. c#方法重载,可选参数,命名参数。

    其实这里没什么可说哦,c++的语法大同小异.先看一段代码. class Program { public static void Test(int a) { Console.WriteLine(&qu ...

  4. 启动Genymotion时报错Failed to initialize backend EGL display

    在启动Genymotion的时候报错: video card说的是显卡,你的显卡可能不支持  OpenGL2.0,或者你装的驱动有问题. 解决办法:将驱动重新安装一下. 可直接下载一个如“驱动人生“一 ...

  5. Tools - 国内开源镜像网站

    阿里云镜像 网易开源镜像站 搜狐开源镜像站 香港中文大学 清华大学开源软件镜像站 中国科学技术大学开源软件镜像 中国互联网络信息中心开源镜像站 - apache开源软件镜像

  6. iOS_UIImge_Gif的展示

    github地址: https://github.com/mancongiOS/UIImage.git 方式一: 用动画展示 UIImageView *gifImageView = [[UIImage ...

  7. 坑人的微信新版支付(V3.3.6)

         现在微支付的需求越来越多,最近刚接到一个需要微支付的项目,于是身为程序猿的我拿到最新的微信支付接口文档(3.3.6)就开始研究微信支付.本以为应该跟支付宝差不多的感觉结果被坑了.恕在下无能, ...

  8. Mybatis学习错误之:重复加载mapper.xml

    学习mybatis的时候,突然遇到测试出错.测试mapper代理失败,现在钻研少了,不喜欢看未知的错误了,立即改正.错误打印说mapper.xml已经注册,仔细查看SQLMapConfig.xml发现 ...

  9. Hyperledger中数据存取的实现

    简介 本文介绍了在Hyperledger中数据存取的实现. API接口 Hyperledger提供基于key/value的数据存储,其中key是字符串,value则是二进制字节数组,Hyperledg ...

  10. 如何解读SQL Server日志(3/3)

    如何查看被截断的日志 如果数据库做了日志备份操作,则日志会被截断,然后原来活动的VLF会被重用.使用sys.fn_dblog将会看不到任何被截断的日志.那如何查看日志备份中的日志呢?使用fn_dump ...