日期:2014-05-17  浏览次数:21147 次

C# 通过Devart.Data.Oracle.dll连接oracle,怎么才能摆脱客户端啊。
如题,我现在下载了Devart.Data.Oracle.dll的两个dll,想要摆脱oracle的客户端,直接连接,怎么才能实现啊?我看之前的论坛里面说可以,我也到官网下了例子,不过例子里面的连接部分也是给的数据库的服务名字啊。不是直接给的连接,我该怎么弄?
------最佳解决方案--------------------
没用过Devart.Data.Oracle.dll

http://www.itpub.net/thread-1271000-1-1.html

使用dotNet的odp.net免安装客户端
想来大家都对开发应用程序的部署比较讨厌.特别是CS系统又要使用Oracle数据库的时候.大家都比较羡慕vb开发的系统连接Sql server数据库.基本上拷贝就可以使用.
现在,使用ODP.net的.net程序也可以享受这个方便了.
首先,下载 ODP.net的 11G  11.1.6 或者11.1.7以后的.
找出以下几个文件
Oracle.DataAccess.dll
oci.dll
ociw32.dll
orannzsbb11.dll
oraocci11.dll
oraociei11.dll
OraOps11w.dll

开发数据连接层的时候引用 Oracle.DataAccess.dll.就可以了.
编译好后,只要 拷贝 以上几个文件的可执行目录就可以了.
配置 tnsname别名在 连接串里面写.

is_Rac = true;
                       if  ( sLOAD_BALANCE == string.Empty) sLOAD_BALANCE="yes" ;
                       str="(DESCRIPTION =" ;
                       str = str + "(ADDRESS = (PROTOCOL = TCP)(HOST = " +sHostNameNode1+")(PORT = "+sPortNode1+"))" ;
                        str = str + "(ADDRESS = (PROTOCOL = TCP)(HOST = " +sHostNameNode2+")(PORT = "+sPortNode2+"))" ;
                        str = str + "(LOAD_BALANCE =" + sLOAD_BALANCE + ")";
                         str = str + "(CONNECT_DATA =" ;
                         str = str + "(SERVER = "+ sSERVER +")" ;
                         str = str + "(SERVICE_NAME = " +sSERVICE_NAME +")" ;
                        str = str + " ) " ;
                        str = str + ") ";
就可以免装Odp客户端了.美中不足的是 oraociei11.dll 太大,将今120M ,希望以后Oracle把他搞小点.我原来搞的程序自动配置安装Oracle客户端不过29M
苏郎氏

------其他解决方案--------------------
还可以在客户端调用webservice,这样就不用装了,平时都是用Sql Server,装了Oracle11g,所以不用额外装客户端了,没注意过
------其他解决方案--------------------
可以.不过很麻烦.关注方法..
------其他解决方案--------------------
引用:
就是因为那个太大了啊,一个小程序才几百K,外带个dll就100多M,太浪费了。

哈哈。。不是这样说地,你的一个小程序才几百K,不仅要让人家装一个几十MB的.net framework,还要让人家专门装一个oracle客户端,有没有搞错啊,那你干脆别写这个小程序的,100MB下的程序不要写了