基于ADO_NET的数据库访问技术研究

  • 格式:pdf
  • 大小:125.48 KB
  • 文档页数:3

科技广场2007.3122
的连接并完成数据的更新工作。

ADO.NET主要用来处理非连接状态的数据,在程序中使用非连接状态的数据可以有较好的效率,并且可以降低网络负担。

ADO.NET有两个核心组件: 数据集DataSet和.NET数据
提供程序。

图一描述了ADO.NET总的体系结构。

图一ADO.NET体系结构图
(1)ADO.NET DataSet
ADO.NET中的DataSet是非连接模式的核心,DataSet的目的是为了实现独立于任何数据源的数据访问,在本地内存中实现一个数据缓存。

它的数据源并不仅仅局限于数据库,也可以从XML文件或自定义的本地数据文件中获得数据。

DataSet数据集以XML的形式驻留在内存中。

DataSet由一个或多个DataTable对象组合而成,而每个DataTable对象由多个数据的行与列、主键、外键、约束及存放于DataTable对象中的数据关系信息组成,可以把DataSet称为离线数据库,它的结构与SQL Server或Access非常相似。

它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据。

DataSet与现有数据源的交互是通过DataAdapter来控制的。

(2).NET数据供应器(Data Provider)
另一个ADO.NET体系结构的核心元素是.NET数据提供者(Data Provider)对象,它是一组包括Connection、Command、DataReader和DataAdapter对象在内的组件,其目的是为了实现数据操作和对数据的快速访问。

各对象的主要功能如表一所示:
表一各主要对象的功能
.NET框架附带了2个.NET数据提供程序: SQL Server.NET数据提供程序和OLE DB .NET数据提供程序。

2使用ADO.NET进行数据访问
ADO.NET主要提供了两种访问数据的实现方法: DataSet对象和DataReader对象。

DataSet对象主要用于非连接模式,DataReader对象则用于连接模式。

图二是使用ADO.NET访问数据库的工作过程。

(1)连接数据源
不管用何种方式访问数据库,数据源的连接都是必不可少的,ADO.NET也不例外。

ADO.NET中的Connection定义了如何连接到一个特定的数据存储。

.NET对象提供了两种Con-nection对象:SqlConnection和OleDbConnection。

SqlConnection对象定义了如何连接到SQL Server数据库,OleDbConnection对象则是通过一个OLE DB Provider来与数据库建立连接。

以下代码(C#语言)演示了使用OleDbConnection建立并打开一个本地SQL Server自带的Northwind数据库的连接,具体如下:
String strConn=“Provider=SQLOLEDB;
DataSource=localhost;Initial Catalog= Northwind;User ID=sa”;
OleDbConnection cnADO=new OleDbConnection(strConn);
cnADO.open;
n使用SqlConnection对象
若数据源是SQL Server 7.0或以上版本,则可以使用SqlConnection建立连接:
String strConn=“server=localhost;database=Northwind;uid=sa;pwd= ; ”;
SqlConnection cnSQL=new Sqlconnection(strConn);
cnSQL.Open();
使用SqlConnection对象可以拥有较高的效率,但是只能连接到SQL Server。

若是要连接到其它数据库,则需要使用OleDbConnection对象。

(2)使用DataSet访问数据
DataSet对象是ADO.NET的中心,可以作为离线的数据源。

DataSet代表了数据的一个完全的集合,包括多个相关的数据表和约束。

使用DataSet对象的最大好处就是可以减轻数据库以及网络的负担。

以往在使用ADO的RecordSet对象时,数据都是存放在IIS或Database中,占用系统的资源,而DataSet使用离线的方式暂存数据,从而减轻了数据使用的负担。

DataSet对象主要存放数据的对象为DataTable对象,可以使用DataAdapter建立DataSet对象。

尽管DataSet可以存储数据,但仍需要使用DataAdapter对象来创建和初始化各种表,还需要用Fill方法来把查询结果移入到DataSet中去,使用方法如下:
SqlDataAdapter cmdEmp=new SqlDataAdapter(“Select* from Employees”,cnSQl);
DataSet ds=new DataSet(); //定义DataSet实例
cmdEmp.Fill(ds, “Emplyees”);
// Emplyees为创建的DataTable名称
若要在DataSet中存储多个表,则在以上代码的基础上,重置DataAdapter对象的SelectCommand、InsertCommand、DeleteCommand属性为包含新的SQL语句的Command对象,

123
科技广场2007.3124。