Oracle ODP.NET的数据访问
2010-7-19 13:55
阅读:7428
上周,实验室的数据库崩溃了,周末新安装数据库后,在客户端配置好TNSNAMES.ORA以后,PL/SQL DEV 可成功login on,但VS2005程序里连接数据库死活都不成功,提示“ORA-01017: 无效的口令/密码,拒绝登录”错误。ConnectionString中的Data Source/User Id/ Password跟PL/SQL登录用的是一样的,怎么会无效呢?卡在这里,硬是弄了很久。并且Net Manager配置也没有问题,测试连接成功。单点跟踪后发现ConnectionString只要赋值,Connection就马上有“ServerVersion引发了“System.InvalidOperationException”类型的异常”。
回头仔细一琢磨发现:PL/SQL用的是TNSNAMES.ORA里的配置,而程序里用的是ODAC里的ODP.NET,原来的数据库是ORACLE 10g R2的,而ODAC也是10.2.0.21 for VS2005的,所以一直都是没有问题的。问题出在,新安装的ORACLE已经是11g了,所以用10g的ODP.Net去访问会出现异常!!这是版本冲突的原因。在网上看了一些关于“ServerVersion引发 了“System.InvalidOperationException”类型的异常”的分析,不是说Try{}Catch{}语句用的有问题就是说配置有问题,看来客服端的ODP.NET的版本一定要与数据库版本相统一!!!(哎,有点浪费时间啊)
回头仔细一琢磨发现:PL/SQL用的是TNSNAMES.ORA里的配置,而程序里用的是ODAC里的ODP.NET,原来的数据库是ORACLE 10g R2的,而ODAC也是10.2.0.21 for VS2005的,所以一直都是没有问题的。问题出在,新安装的ORACLE已经是11g了,所以用10g的ODP.Net去访问会出现异常!!这是版本冲突的原因。在网上看了一些关于“ServerVersion引发 了“System.InvalidOperationException”类型的异常”的分析,不是说Try{}Catch{}语句用的有问题就是说配置有问题,看来客服端的ODP.NET的版本一定要与数据库版本相统一!!!(哎,有点浪费时间啊)
转载本文请联系原作者获取授权,同时请注明本文来自李芳军科学网博客。
链接地址:https://wap.sciencenet.cn/blog-427149-345437.html?mobile=1
收藏
当前推荐数:1
推荐人:
推荐到博客首页
网友评论0 条评论