因为OA中会经常连接Oracle拉数据,但是最近突然出现问题,.net自带的System.Data.OracleClient在安装了32位oracle客户端的环境下每次conn.open()调用oracle的oci.dll时都会提示32位oracle客户端运行在64位环境无法调用,很是麻烦
所以找到了一个简单的办法,直接忽略本机的oracle客户端使用“dotconnect for oracle”的直接模式连接,而且
重点在于Direct设置为true,在相关类型的命名上和使用方法上与System.Data.OracleClient的类完全一致,不用另外学习
OracleConnectionStringBuilder oraCSB = new OracleConnectionStringBuilder(); oraCSB.Direct = true; oraCSB.Server = "192.168.0.1"; oraCSB.Port = 1251; oraCSB.Sid = "OracleSid"; oraCSB.UserId = "scott"; oraCSB.Password = "tiger"; oraCSB.MaxPoolSize = 150; oraCSB.ConnectionTimeout = 30; OracleConnection myConnection = new OracleConnection(oraCSB.ConnectionString);
然而遗憾的是express版本的“dotconnect for oracle”不支持直接模式,也就是不支持Direct属性,只有最基本的和System.Data.OracleClient无异的功能,收费版可30天试用