html5中文学习网

您的位置: 首页 > 网络编程 > ASP.NET » 正文

简介使用ASP.NET访问Oracle数据库的方法_.NET教程_编程技术

[ ] 已经帮助:人解决问题
asp.net|oracle|访问|数据|数据库
摘要

本文简要介绍了使用ASP.NET访问Oracle数据库的方法。首先,介绍了组件的安装;其次,简单说明了System.Data.OracleClient中包含的核心类;最后,通过一个实例讲解了具体的使用方法。


--------------------------------------------------------------------------------

目录

引言

系统需求和安装

核心类介绍

举例说明

参考信息


--------------------------------------------------------------------------------

引言

Microsoft .NET Framework Data Provider for Oracle(以下简称为.NET for Oracle)是一个.NET Framework的组件。这个组件为我们使用.NET访问Oracle数据库提供了极大的方便。那些使用.NET和Oracle的开发人员,相信会乐的手舞足蹈,因为他们再也不必使用那个并不十分“专业="的OLEDB来访问Oracle数据库了。这个组件的设计非常类似.NET中内置的Microsoft .NET Framework Data Provider for SQL Server和OLEDB。如果读者非常熟悉这两个内置的组件,那么相信您学习这个组件也是轻车熟路的。

本文针对的读者主要是那些考虑使用.NET技术访问Oracle数据库的程序员而编写,需要有一定的C#语言、ADO.NET技术和Oracle数据库基础知识。文中结合ASP.NET技术给出了相关示例以及具体的注释。当然,这并不意味着.NET for Oracle组件只能为编写ASP.NET程序提供服务,同样它还可以为使用.NET技术编写的Windows程序提供方便。

本文将简要介绍ASP.NET for Oracle的系统需求和安装以及核心类,之后重点详解使用此组件访问Oracle数据库的方法。其中包括.NET for Oracle对于各种Oracle数据库中的特殊数据类型的访问、各种核心类使用方法的介绍并且在文章的最后给出了示例等等。


--------------------------------------------------------------------------------

系统需求和安装

在安装.NET for Oracle之前,必须首先安装.NET Framework version 1.0。同时,还要确定安装了数据访问组件(MDAC 2.6及其以上版本,推荐版本是2.7)。既然是要访问Oracle数据库的数据,那么还需要安装Oracle 8i Release 3 (8.1.7) Client及其以上版本。目前Oracle9i已经发布,作者本人安装的是Oracle 9i,本文中所有的程序,都是在Oracle9i数据库环境下编写和调试完成的。

组件的安装非常方便,直接运行oracle_net.msi。在安装过程中无需任何设置,一路点击“NEXT="完成安装即可。默认安装将在C:/Program Files/ Microsoft.NET目录下建立一个名为OracleClient.Net的文件夹,其中包含以下六个文件,具体的注释如下表:



注意:Mtxoci8.dll文件并未安装在默认文件夹中,而是安装在系统目录中,例如:c:/Windows/System32目录中。

对于开发人员,其中至关重要的是System.Data.OracleClient.dll文件。这是.NET for Oracle组件的核心文件。使用时,开发人员可以通过安装oracle_net.msi来使用.NET for Oracle组件,这时系统会将此组件作为一个系统默认的组件来使用,就好像是我们所熟悉的System.Data.SqlClient和System.Data.OleDb组件一样。但是,需要注意的一点是:当开发人员完成了程序之后分发给用户使用时,出于对于软件易用性的考虑,我们是不希望当用户使用此软件之前,还要如同开发人员一样安装oracle_net.msi。这时开发人员可以在发布之前,将System.Data.OracleClient.dll文件复制到软件的bin目录下。这样用户就可无需安装oracle_net.msi而正常的使用软件所提供的功能了。(这种方法限于开发的程序不涉及分布式事务)


--------------------------------------------------------------------------------

核心类介绍

.NET for Oracle组件中用于组织类和其他类型的名字空间是System.Data.OracleClient。在此名字空间中,主要包含四个核心类,它们分别是:OracleConnection、OracleCommand、OracleDataReader、OracleDataAdapter。如果开发人员很了解ADO.NET技术,那么对于这四个类的使用将是耳熟能详的。这些内容非常简单,其具体使用方法几乎和SqlConnection、SqlCommand、SqlDataReader、SqlDataAdapter是一模一样的。这里就不再详细说明,读者将在后文中通过示例了解使用这些类的有关情况,这里只给出下表以供读者简要了解。



--------------------------------------------------------------------------------

举例说明

下面是一个使用.NET for Oracle组件操纵Oracle数据库的例子。在写程序之前,先要在Oracle数据库中建立一个表,并且加入一行数据。使用下面的语句。

建立一个名为OracleTypesTable的表
"create table OracleTypesTable (MyVarchar2 varchar2(3000),MyNumber number(28,4)
Primary key ,MyDate date,MyRaw RAW(255))";
插入一行数据
"insert into OracleTypesTable values ('test',4,to_date('2000-01-11
12:54:01','yyyy-mm-dd hh24:mi:ss'),'0001020304')";
下面的程序就是要通过.NET for Oracle组件来访问Oracle数据库,并且显示出这行数据。在程序中请注意前文中所说明的类,并且联想.NET中关于数据处理类的使用方法。

1. using System;
2.using System.Web;
3.using System.Web.UI;
4.using System.Web.UI.HtmlControls;
5.using System.Web.UI.WebControls;
6.using System.Data;
7.using System.Data.OracleClient;

8.public class pic2:Page {
9. public Label message;
10. public void Page_Load(Object sender,EventArgs e)
11. {
//设置连接字符串
12. string connstring="Data Source=eims;user=zbmis;password=zbmis;";
//实例化OracleConnection对象
13. OracleConnection conn=new OracleConnection(connstring);

14. try
15. {
16. conn.Open();
//实例化OracleCommand对象
17. OracleCommand cmd=conn.CreateCommand();

18. cmd.CommandText="select * from zbmis.OracleTypesTable";
19. OracleDataReader oracledatareader1=cmd.ExecuteReader();
//读取数据
20. while (oracledatareader1.Read()) {
//读取并显示第一行第一列的数据
21. OracleString oraclestring1=oracledatareader1.GetOracleString(0);
22. Response.Write("OracleString " +oraclestring1.ToString());

//读取并显示第一行第二列的数据
23. OracleNumber oraclenumber1 =oracledatareader1.GetOracleNumber(1);
24. Response.Write("OracleNumber "+oraclenumber1.ToString());

//读取并显示第一行第三列的数据
25. OracleDateTime oracledatetime1=oracledatareader1.GetOracleDateTime(2);
26. Response.Write("OracleDateTime " +oracledatetime1.ToString());

//读取并显示第一行第四列的数据
27. OracleBinary oraclebinary1=oracledatareader1.GetOracleBinary(3);
28. if(oraclebinary1.IsNull==false)
29. {
30. foreach(byte b in oraclebinary1.Value)
31. {
32. Response.Write("byte " +b.ToString());
33. }
34. }
35. }
//释放资源
36. oracledatareader1.Close();
37. }
38. catch(Exception ee)
39. {
//异常处理
40. message.Text=ee.Message;
41. }
42. finally
43. {
//关闭连接
44. conn.Close();
45. }
46. }
47.}
如果您对于.NET中数据操作的内容很熟悉,那么相信上面的程序是完全看得懂的。所以在这里分析上面代码意义不是很大。

请那些既使用.NET又使用Oracle的读者记住:.NET for Oracle组件的设计非常类似.NET中内置的Data Provider for SQL Server和OLEDB。
vZ7HTML5中文学习网 - HTML5先行者学习网
vZ7HTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
  • 评论
3人参与,3条评论
  • 最新评论
2016年12月20日 14:55 唱情歌 [吉林省洮南市网友]

第一套胜战计第一计瞒天过海,以水代酒。此计关键在于巧妙,不露声色为高手。第二计围魏救赵,英雄救美,有时需有骑士精神。第三计借刀杀人,请人代喝,当然找找要好的朋友。第四计以逸待劳,常去厕所,躲一杯是一杯,必要时一吐了之。第五计趁火打劫,醉中取胜,众人皆醉我独醒。第六计声东击西,能拖就拖。第二套敌战计第七计无中生有,酒话常说,说到别人迷糊之时,就是成功避酒之时。第八计暗渡陈仓,偷着倒酒,特别注意的是别倒进了邻坐女生鞋壳里,......

2016年12月20日 14:20 优雅控 [安徽省黄山区网友]

甲:唷,这不是小王吗? 乙:唷,是老李,最近忙什么哪? 甲:嗨,没啥事,下下象棋,老没见你们老爷子了,他还好吗? 乙:托您福,还硬朗着呢。 甲:你爸爸也喜欢下象棋。 乙:是啊? 甲:可不,以前我老和你爸爸下棋。 乙:(小声)我怎么不知道? 甲:有一回我们俩下棋,我还剩一士,你爸爸还剩一象。。。 乙:那不和棋了吗? 甲:是啊,依着我也是和棋,可你爸爸不干,非得接着下不可? 乙:啊??那怎么下呀? ......

2016年12月20日 5:51 雪花谣

上学一向不安分,大一时第一次上自学,偶坐在教室郁闷,随即跑到过道抽烟。刚点着烟没一会,来了个PL女生,问寡人,“现在上自习呢!你怎么跑出来 了?“我说,无聊出来抽烟,MM你是哪班的?怎么也跑出来了。PLMM指着我们教室说,那个班的!当时偶好激动的说,我们一个班的啊?怎么,你也郁闷吗?她说:嗯,我们班一个新生上自习跑出去了,我出来找他。偶笑笑,看来也还有坐不住的,你找他干啥,你又不是他妈!MM:没办法啊,我是他班主任!偶当时就蒙了……一分钟后,憋出一句话:老师,你看着真年轻……......

关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助