ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ADO.Net对Oracle数据库的操作 1

ADO.Net对Oracle数据库的操作 1

原创 Linux操作系统 作者:kirinri 时间:2009-02-02 10:58:49 0 删除 编辑

 ADO.Net简介 [转自网络,收藏学习]

访问数据库的技术有许多,常见的有一下几种:开放数据库互联(ODBC)、 数据访问对象(DAO)、远程数据对象(RDO)、 ActiveX数据对象(ADO)。我们今天主要要学习ADO.NETOracleClient命名空间中的几个常用对象,用这作为对ADO.NET认识学习的开始。

ADOADO.NET既有相似也有区别,他们都能够编写对数据库服务器中的数据进行访问和操作的应用程序,并且易于使用、高速度、低内存支出和占用磁盘空间较少,支持用于建立基于客户端/服务器和 Web 的应用程序的主要功能。但是ADO使用OLE DB接口并基于微软的COM技术,而ADO.NET拥有自己的ADO.NET接口并且基于微软的.NET体系架构。众所周知.NET体系不同于COM体系,ADO.NET接口也就完全不同于ADOOLE DB接口,这也就是说ADO.NET.NET构架提供了优化的数据访问模型,和基于COMADO是完全两样的数据访问方式。

ADO.NET是一组访问数据源的面向对象的类库。简单的理解,数据源就是数据库,它同时也能够是文本文件、Excel表格或者XML文件。ADO.NET里包括了许多专门用于和数据打交道的对象。下面介绍了一些最常用的对象。这些对象是学习ADO.NET必须了解的。掌握它们后我们将了解使用ADO.NET和数据打交道需要考虑哪些事情。

OracleConnection 对象

要访问一个数据源,你必须先建立一个到它的连接。这个连接里描述了数据库服务器类型、数据库名字、用户名、密码,和连接数据库所需要的其它参数。command对象通过使用connection对象来知道是在哪个数据库上面执行ORACLE命令。

 

OracleConnection oracleConn = new OracleConnection();
oracleConn.ConnectionString = "User Id=scott;Password=tiger;
                                     Data Source=oracleSN;";
oracleConn.Open();


 

OracleCommand对象

连接数据库后就可以开始想要执行的数据库操作,这个是通过command对象完成,command对象一般被用来发送ORACLE语句给数据库。command对象通过connection对象得知道应该与哪个数据库进行连接。我们既可以用command对象来直接执行ORACLE命令,也可以将一个command对象的引用传递给OracleDataAdapterOracleDataAdapter能包含一系列的command对象,可以处理大量数据。

public void ReadMyData(string connectionString)
{
    
string queryString = "SELECT EmpNoDeptNo FROM Scott.Emp";
    OracleConnection connection = 
new OracleConnection(connectionString)
    
{
        OracleCommand command = 
new OracleCommand(queryString, connection);
        connection.Open();
        OracleDataReader reader = command.ExecuteReader();
        
try
        
{
            
while (reader.Read())
            
{
                Console.WriteLine(reader.GetInt32(0) + ", " + reader.GetInt32(1));
            }
        }
        
finally
        
{
            reader.Close();
        }
    }
}


 

OracleDataReader对象

许多数据库操作要求我们仅仅只是需要读取一组数据。这时候就用到了data reader对象。通过data reader对象,我们可以获得从command对象的SELECT语句得到的结果。考虑到性能方面的因素,data reader返回的数据流被设计为只读的、单向的,这将意味着你只能按照一定的顺序从数据流中取出数据。虽然你在这里也获得了性能上的提升,但是缺点也是明显的,不能够操作取回数据,如果需要操作编辑数据,解决的办法是使用DataSet
OracleDataReader
提供了几个方法,在读取数据的时候用这些方法可以对数据表中的数据按数据类型进行筛选:GetDateTime, GetDouble, GetGuid, GetInt32

DataSet对象

DataSet对象用于表示那些储存在内存中的数据。它包括多个DataTable对象,DataTable就象一个普通的数据库中的表一样,也有行和列,我们甚至能够通过定义表和表之间的关系来创建从属关系。DataSet主要用于管理存储在内存中的数据以及对数据的断开操作。注意,由于DataSet对象能被所有Data Providers(数据源交互的类库)使用,它不需要指定前缀。

OracleDataAdapter对象

某些时候我们只需要读数据,并且你不需要修改它们把更改写回数据源。但是还有这样一些情况为了减少数据库调用的次数,我们把数据缓存在内存中。Data adapter通过断开模型来轻松的实现了后面这种情况的处理。当批量完成的对数据库的读写操作的并将改变写回数据库的时候,data adapter 会填充(fillDataSet对象。data adaapter里包含了connection对象,当对数据源进行读取或者写入的时候,data adapter会自动的打开或者关闭连接。此外,data adapter还包含对数据的SELECT,INSERT,UPDATEDELETE操作的command对象引用。如果我们为DataSet中的每一个table都指定data adapter,它将会帮你处理好所有与连接处理数据库的操作,我们所需要做的仅仅就是告诉data adapter什么时候读取或者写入到数据库。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12476590/viewspace-545006/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 做我老婆好不好
请登录后发表评论 登录
全部评论

注册时间:2007-12-21

  • 博文量
    257
  • 访问量
    502573