VS2013中用ODP.NET访问ORACLE 11G R2
问题描述:
1、我公司开发平台系统用VS2010\2012\2013 + ODP.NET(Oracle.DataAcess.DLL)来访问远程数据库ORACLE 11G R2;
2、本人电脑OS为WIN10 64BIT,开发工具为Visual STUDIO 2013,打开专案获取最新版本,编译后,运行报错一,如图一:
3、经过各种测试,没有解决这个问题,带出了新的问题,如图二:
问题解答:
1、针对问题一,刚开始以为是没有安装ORACLE CLIENT,结果安装后,问题依旧;
2、网上搜索,有的说没有安装ODP.NET,安装后,问题依旧;
3、继续网上搜索,有的说ODP.NET版本不正确,登录ORACLE官网下载最新的ODP.NET,问题依旧;
4、怀疑是VS2013版本问题;卸载VS2013,安装VS2012,问题依旧;哈哈。。。
5、排除了VS问题;继续网上搜索,有人说查看GAC,在windows\assembly下,参考这个博客,
http://www.cnblogs.com/yjmyzz/archive/2011/04/19/2020793.html ,没有效果;
6、怀疑是GAC下的文件版本不正确,删除GAC下的该Oracle.DataAccess.DLL后,结果引出新的问题二;
7、郁闷中...
8、仔细查看了web.config文件,看到我们的项目访问ORACLE 有两种方式,一种用"System.Data.OracleClient",另一种是Oracle.DataAccess.Client,
所以,Oracle Client还是要安装,并且tnsnames.ora配置为与WEB.CONFIG中一致,测试客户端连接数据库成功;
9、OK,继续编译执行,还是报第二个错误,缺少Oracle.DataAccess.DLL,果断下载ODTwithODAC121021(http://pan.baidu.com/s/1eQm5Org 可以下载),解压安装后,系统自动将tnsnames.ora配置为和oracle client_1中一致;重新获取最新代码,编译,执行,成功!!
结论:
1、问题不可怕,虽然,我断断续续处理了3天;最终还是解决了;
2、处理问题前,需要冷静思考一下,再动手,免得做一些冤枉工。
3、分享给各位需要的朋友,希望能够帮到大家。