您的位置:首页 > 数据库 > Oracle

.net中访问oracle数据库的几种方式

2010-07-18 14:33 323 查看
更正提示:
以前在发表这篇文章时,并没有经过测试,只是到网上查找了相关的资料,现在看来错误还不少,因此对本文进行了修改。

写这篇文章缘于http://community.csdn.net/Expert/topic/4631/4631305.xml?temp=.6259119一帖,
我在查看ORACLE网站、MSDN2005及注册表之后,小有收获,特写此文,希望对各位有所帮助。
好了,废话结束,现在看正文:

1.ODBC方式
我们可以在"我的电脑->控制面板->(性能和维护->)管理工具->数据源(ODBC)->系统DSN->添加",查看系统中已经安装好的ODBC驱动,其中就包含了“Microsoft ODBC Driver for Oracle”。
连接字符串格式:
Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;
要求:必须安装oracle 7.3版(或更高)的客户端。

2.OLEDB方式
请大家打开注册表编辑器regedit,搜索oracle即可以搜索到以下键:
Microsoft OLE DB Provider for Oracle
HKEY_CLASSES_ROOT/CLSID/{e8cc4cbe-fdff-11d0-b865-00a0c9081c1d}/OLE DB Provider
HKEY_CLASSES_ROOT/MSDAORA
所以,只要你安装了合适版本的MDAC,那么起码就已经可以使用OLEDB来访问ORACLE了。
连接字符串格式:
Provider=msdaora;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
要求:必须安装oracle 8i版(或更高)的客户端。

3.System.Data.OracleClient方式
以上2种都是比较通用的方式,我们再来看看M$专门为ORACLE写的类。
请大家打开MSDN2005,输入地址
ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/WD_ADONET/html/054f76b9-1737-43f0-8160-84a00a387217.htm(您也可以通过目录、索引或者搜索来找到)
《Oracle .NET Framework 数据提供程序的系统要求》(即System.Data.OracleClient命名空间中的类),摘要如下:
Oracle .NET Framework 数据提供程序需要 Microsoft 数据访问组件 (MDAC) 2.6 版或更高版本。建议使用 MDAC 2.8 SP1。
还必须安装 Oracle 8i Release 3 (8.1.7) 客户端或更高版本。
Oracle 9i 版本之前的 Oracle 客户端软件无法访问 UTF16 数据库,因为 UTF16 是 Oracle 9i 中的一项新功能。要使用此功能,必须将客户端软件升级到 Oracle 9i 或更高版本。
哈哈,M$其实没有我们想象中的勤奋,他只是帮ORACLE CLIENT做了个包装而已。

4.Oracle Data Provider for .net(ODP.NET)
我们再到ORACLE的老家转转,可以发现他在很多地方都吹嘘ODP.NET,看看它有些什么要求才能用吧。
请大家在浏览器中输入地址(ORACLE的网站有点慢,请不要急)
http://www.oracle.com/technology/tech/windows/odpnet/faq.html#install
Q: What do I need to have installed on my client machine to have ODP.NET work?
A: You will require the following:
Windows 2000, Windows XP Professional, or Windows Server 2003
Microsoft .NET Framework 1.0 or higher
Oracle9i Client Release 2 (9.2) or higher
Oracle Net Services (included with the client)
Oracle Services for Microsoft Transaction Server, Release 2 (9.2) or higher. This is required for applications using distributed transacations.
简单翻译:
如果你用ODP.NET来访问ORACLE数据库,你需要以下条件:
操作系统:WIN2K XP 2003
.NET FRAMEWORK 1.0以上
ORACLE9I以上的客户端
连接字符串格式:
Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;Integrated Security=no;

5.Core Labs OraDirect (.NET)
www.connectionstrings.com上发现了一个不用安装oracle客户端而直接访问oracle的.net类库,可以免费使用一个月,但是价格比较贵。网址是:http://crlab.com/oranet/,如果有兴趣可以去看看。
连接字符串格式:
User ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;
要求:花钱购买类库

6.第3方的观点:
http://www.fawcette.com/vsm/2003_07/magazine/columns/databasedesign/
有一篇文章叫<<Take Advantage of Oracle in .NET>>
讲了如何在可视环境下(也就是用鼠标点、拖等操作)访问ORACLE 。

好了,现在来做个总结

访问方式连接字符串要求
ODBCDriver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;Oracle Client 7.3以上版本
OLEDBProvider=msdaora;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;Oracle Client 8i以上版本
System.Data.OracleClientProvider=msdaora;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;MDAC 2.6
Oracle Client 8i Release 3 (8.1.7) 以上版本

ODP.NETData Source=MyOracleDB;User Id=myUsername;Password=myPassword;Integrated Security=no;Oracle Client 9i以上版本
OraDirect .netUser ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;不需要安装Oracle客户端
必须购买许可证
好了,感谢您坚持看完本文,希望没有浪费您的时间,对您有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: