.net 连接oracle的几种方式

http://blog.csdn.net/yaucyj/article/details/5899113

=================================================

    1、OracleClient方式,是微软专门针对Oracle数据库开发的,仅在 .NET Framework 1.1 版中受支持。据说速度快、性能好,是推荐使用的方式。但根据我的经验,当Oracle数据库服务器端采用英文字符集比如 US7ASCII 时,客户端不管字符集如何设置,读出的中文都是乱码;若服务器端用中文字符集比如 ZHS16GBK ,则无乱码问题。
  引用类库:System.Data.OracleClient.dll。 
  命名空间:System.Data.OracleClient。
  常用类:OracleConnection、OracleCommand、OracleDataAdapter、OracleTransaction、OracleDataReader等。
  典型连接字符串:“data source=oratest;user id=scott;password=tiger”(注意:可不指定 provider 驱动)。
  2、 OleDb方式,微软和Oracle公司各自提供了OleDb的驱动程序,使用方法的差别很少。不管Oracle服务器端用何字符集,读写中文均无乱码问题。
  命名空间:System.Data.OleDb。
  常用类:OleDbConnection、OleDbCommand、OleDbDataAdapter、OleDbTransaction、OleDbDataReader等。
  连接字符串:与OracleClient方式相比,要添加一个provider,微软为“provider=MSDAORA.1;”或“provider=MSDAORA”,Oracle为“provider='OraOleDb.Oracle';”。

      3、 oracle 提供的Oracle Data Provider for .NET(ODP.net)
    引用类库:Oracle.DataAccesss.dll 【安装oracle for .net的安装包Oracle Data Provider for .NET】
    命名空间:Oracle.DataAccess.Client和Oracle.DataAccess.Types【Oracle.DataAccess.Client用于设置数据库的连接等等通用功能,Oracle.DataAccess.Types用于设置

oracle自定义的一些数据类型】
    常用类:OracleConnection、OracleCommand、OracleDataReader 等
    连接字符串:和OleDb方式格式相同,只是provider换为 “Provider=OraOLEDB.Oracle.1”

      4、dotConnect For Oracle是Devart公司出品的一个.net平台访问Oracle数据库的一个驱动。它的专业版本是一个收费版本提供了许多别的驱动所没有的功能与特性,如对Linq To Oracle,Ado.Net Entity Framework For Oracle支持等。我们一般不会去买它来作开发,在实际项目中使用它的破解版本也不太合适。这里我们使用的是它的Express免费版本,这个版本提供的功能和微软和Oracle提供的版本基本一致。这个版本可以从下面的链接下载。
http://www.devart.com/dotconnect/oracle/dcoraclefree.exe

我考虑使用这个免费版本的理由如下:
1. 微软将在最新版本的.Net Framework中(4.0中吧),不再提供它们的Oracle驱动。这使用我对其它厂商提供的Oracle驱动产生了好感。
2. 使用微软提供的驱动有个几乎是无法解决的问题,就是OCI-22053 溢出错误 overflow error。Oracle 数值数据类型最多可存储 38 个字节的精度。当将 Oracle 数值转换为公共语言运行库数据类型时,Oracle 值可能会变得过大。这会导致 Oracle OCI-22053 溢出错误。特别是我们获取用avg等SQL函数算出来的数值时,经常会碰到这个问题。解决的办法是把数值精度在SQL语句中截短或把数值转换成字符串。但这总有点不爽吧。而 Devart dotConnect For Oracle则没有这个问题。
3. dotConnect For Oracle对Oracle数据库的各种编码都支持的很好。
4. dotConnect For Oracle可以在没有安装Oracle Client的机器上访问Oracle数据库服务。
5.性能上的考虑。按照Devart提供的数据,dotConnect For Oracle在性能上比微软和Oracle提供的驱动都要好。具体


=========================================



可以参考http://www.devart.com/dotconnect/oracle/performance.html 。


方式1:直接利用.NET的oracle驱动连接
安装Oracle客户端驱动包
找到服务器端安装路径:E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN下tnsnames.ora,把该文件覆盖客户端驱动目下该文件
配置客户端驱动
1、打开数据源管理
2、选择系统DSN,点击[添加]
3、弹出的界面中选择Oracle in OraDB10g_1驱动,弹出Oracle ODBC  Driver  Configuration界面
4、填写四个数据项Data Source Name    TNS  Services Name  User ID
其中TNS Servers Name指的是服务器端设置服务名称
这个部分可以省略
设置完成之后确定
引用System.data.oracleclient;

.代码如下:

 using System.data.oracleclient;
 string oradb = "Data Source=water;User Id=modis;Password=modis;Integrated Security=no";
 OracleConnection conn = new OracleConnection(oradb);
 conn.Open();

(我的环境为VS2005,oracle数据源连接只支持到10g以下。)

方式2:安装完ODP.net(Oracle Data Provider.NET),通过OLEDB连接。
引用System.Data.OleDb;
.代码如下:

 using System.Data.OleDb;
 string oradb = "Provider=OraOLEDB.Oracle;Data Source=water;User Id=modis;Password=modis;";
 OleDbConnection myConnection = new OleDbConnection(oradb);
 myConnection.Open();

方式3:安装完ODP.net,通过Oracle的连接器
引用动态链接库Oracle.DataAccess.Client.

.代码如下:

 using Oracle.DataAccess.Client;
 string oradb = "Data Source=water;User Id=modis;Password=modis;";
 OracleConnection conn = new OracleConnection(oradb); // C#
 conn.Open();

OracleClient是一种.NET Framework 数据提供程序

OracleClient .NET Framework 数据提供程序使用它自身的协议与Oracle通讯
Ole DB 通过OLE DB 服务组件 和 OLE DB 提供程序与 Database进行通信,也就是需要安装MDAC.
因此OracleClient比oledb具有更好的性能

OracleClient是微软提供的,不是Oracle自带的,Oracle自带的叫ODP.net(Oracle Data Provider for .net)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值