oracle无客户端连接数据库(C#)

前提:

1. 不安装oracle的客户端

2. 不需要配置ora文件

3. C# 实现

既然是C#实现,当然就要去找oracle的连接库了,主要有三种方式:

1. 微软提供的System.Data.OracleClient已经过时了,不推荐使用了

2. Oracle 的Oracle.DataAccess

3. Oracle 的Oracle.ManagedDataAccess

如果运行环境是.net 3.5的话,就只能选择Oracle.DataAccess了

开发:

先去下载ODAC, oracle官方下载需要账号,不想下载的话就点这里 x64 x86

上面那个是ManagedDataAccess,体积比较小,推荐使用

下面那个是DataAcess,体积比较大,需要安装一下ODP.NET,但是不是安装Oracle client 那个巨无霸。

Oracle.Managed.DataAccess 只需要引用Oracle.Managed.DataAccess.dll 这个库即可,不需要其他什么模块了。

Oracle.DataAccess则需要安装下Xcopy的ODP.net4/20。命令行下运行install.bat odp.net2/4 C:\oracle myhome true即可。这样ODP.NET就安装好了。引入Oracle.DataAccess库就OK了。

这里运行时可能会碰到异常,只要将C:\oracle 目录下的oraons.dll拷贝至C:\oracle\bin目录下即可。

如果想做成绿色版,免安装ODP.NET,则收集以下DLL并拷贝至exe目录即可:

OCI.DLL, Oracle.DataAccess.dll, oraociei12.dll, oraons.dll, oraops12.dll,

还另外加一个vc库msvcr***.dll,这就看你的vs版本了。

另外附上ConnectString的写法:

constr = string.Format("Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={2})(PORT={3})))(CONNECT_DATA=(SERVICE_NAME={4})));User Id={0};Password={1}", _userID, _passWord, _dataSource, _port, _serviceName);

猜你喜欢

转载自blog.csdn.net/chence19871/article/details/83344138