NET连接Oracle数据库踩过的坑
使用System.Data.OracleClient 常见问题有
ORA-12560: TNS:protocol adapter error错误
ORA-12560: TNS: 协议适配器错误,
多是由于服务器上无法安装32位oracle客户端导致自开发程序无法访问数据库导致,可以使用Oracle.ManagedDataAccess来解决此连接问题。
1 常用数据库访问类
一般来说,C#连接Oracle数据库,我们通常会通过封装好的dll调用,目前常用的有三个:
(1)System.Data.OracleClient.dll(微软)
(2)Oracle.DataAccess.Client.dll(Oracle,也称ODP.NET)
(3)Oracle.ManagedDataAccess.dll(Oracle)
1.1 System.Data.OracleClient.dll
首先需安装Oracle客户端,然后可直接直接引用微软的System.Data.OracleClient,但VS会提示“System.Data.OracleClient.OracleConnection”已过时。经测试虽然提示过时但仍可正常使用,微软已经很久没有更新过这个访问类了,安全性方面无保障。
1.2 Oracle.DataAccess.Client.dll
Oracle提供的数据库访问类库,简称ODP.NET,其功能和效率上都有所保证,访问效率和速度都要比微软的System.Data.OracleClient优秀。
优点:
(1)无需安装Oracle客户端,程序也能访问服务器上的Oracle
(2)不需要配置tnsnames.ora文件
缺点:
(1)要区分用区分x86/x64版本
1.3 Oracle.ManagedDataAccess.dll
推荐这一种,Oracle官方出品,日常更新维护,无需安装Oracle客户端,不用区分操作系统位数。
链接:https://www.jianshu.com/p/efaba51d1cb6