加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

.net中连接Oracle 的两种方式:OracleClient,OleDb

发布时间:2020-12-12 16:08:03 所属栏目:百科 来源:网络整理
导读:.net中连接Oracle 的两种方式:OracleClient,OleDb 2015-04-24 00:00 2442人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: C# (6) 作者同类文章 X 数据库 (7) 作者同类文章 X .Net 中读写Oracle数据库常用两种方式:OracleClient和OleDb,其中OleDb的


.net中连接Oracle 的两种方式:OracleClient,OleDb

2442人阅读 评论(0) 收藏 举报 本文章已收录于:


分类: 作者同类文章 X
作者同类文章 X


.Net 中读写Oracle数据库常用两种方式:OracleClient和OleDb,其中OleDb的方式根据驱动程序的不同又有两种。

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等。
不同之处
引用类库:微软的只需要System.Data.dll;若用Oracle的驱动,虽然也只要引入System.Data.dll,但前提是首先安装
Oracle针对.Net的数据访问组件 连接字符串:与OracleClient方式相比,要添加一个provider,微软为“provider=MSDAORA.1;”,Oracle为“provider='OraOleDb.Oracle';”。

string connString = "Provider=OraOLEDB.Oracle.1;User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))";

使用OleDB组件可以获得比OracleClient更高的效率和性能,因为OleDB是比ADO.NET更底层的组件,ADO.NET也要通过OleDB获取数据。

C# 连接 Oracle 的几种方式

http://www.cnblogs.com/storys/archive/2013/03/06/2945914.html


实例连接:

OleDbConnection conn=
new OleDbConnection("Provider=OraOLEDB.Oracle.1;Server=localhost;

Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)

(HOST = localhost)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = mydb.bawei)));

User ID=scott;Password=scott;");

try{
conn.Open();
OleDbCommand comm=new OleDbCommand("select * from scott.emp",conn);
OleDbDataReader dr=comm.ExecuteReader();

Console.WriteLine("姓名 职位");
while(dr.Read())
{
Console.WriteLine(dr.GetString(1)+" "+dr.GetString(2));

}
Console.ReadLine();

}finally{
dr.Close();
conn.Close();

}



顶 0 踩 0


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读