C#与数据库访问技术总结(一)之体系结构

 ADO.NET(ActiveX Data Object.NET)是Microsoft公司开发的用于数据库连接的一套组件模型,是ADO的升级版本。

    程序员能使用ADO.NET组件模型,方便高效地连接和访问数据库。

1 ADO.NET概述

    ADO.NET是与数据库访问操作有关的对象模型的集合,它基于Microsoft的.NET Framework,在很大程度上封装了数据库访问和数据操作的动作。

    ADO.NET同其前身ADO系列访问数据库的组件相比,做了以下两点重要改进:

    †ADO.NET引入了离线的数据结果集(Disconnected DataSet)这个概念,通过使用离线的数据结果集,程序员更可以在数据库断开的情况下访问数据库。

    †ADO.NET还提供了对XML格式文档的支持,所以通过ADO.NET组件可以方便地在异构环境的项目间读取和交换数据。

1.1 ADO.NET体系结构

    ADO.NET组件的表现形式是.NET的类库,它拥有两个核心组件:.NET Data Provider(数据提供者)DataSet(数据结果集)对象

    .NET Data Provider是专门为数据处理以及快速地只进、只读访问数据而设计的组件,包括Connection、Command、DataReader和DataAdapter四大类对象,其主要功能是:

    † Connection:在应用程序里连接数据源,连接SQL Server数据库服务器。

    † Command:通过SQL语句的形式执行数据库操作,并能以多种形式把查询到的结果集填充到DataSet里。(其他对象的功能后面还有介绍)

    DataSet对象是支持ADO.NET的断开式、分布式数据方案的核心对象。DataSet是数据的内存驻留表示形式,无论数据源是什么,它都会提供一致的关系编程模型。它是专门为独立于任何数据源的数据访问而设计的。

    DataSet对象的主要功能是:

    † (1)用其中的DataTable和DataRelations对象来容纳.NET Data Provider对象传递过来的数据库访问结果集,以便应用程序访问。

      (2)把应用代码里的业务执行结果更新到数据库中。

    并且,DataSet对象能在离线的情况下管理存储数据,这在海量数据访问控制的场合是非常有利的。

下图描述了ADO.NET组件的体系结构。(也许下面这张图对于初学者看不懂,但当你读完整个系列的文档的时候,再回头看的时候,就会一目了然。)

C#与数据库访问技术总结(一)之体系结构_第1张图片

 

 

1.2  ADO.NET对象模型

    ADO.NET对象模型中有5个主要的数据库访问和操作对象,分别是Connection、Command、DataReader、DataAdapter和DataSet对象。

Connection对象主要负责连接数据库

Command对象主要负责生成并执行SQL语句

DataReader对象主要负责读取数据库中的数据

DataAdapter对象主要负责在Command对象执行完SQL语句后生成并填充DataSet和DataTable

DataSet对象主要负责存取和更新数据

   ADO.NET主要提供了两种数据提供者(Data Provider),分别是SQL Server.NET Provider和OLE DB.NET Provider。

    SQL Server.NET Framework数据提供程序使用它自身的协议与SQL Server数据库服务器通信,而OLEDB.NET Framework则通过OLE DB服务组件(提供连接池和事务服务)和数据源的OLE DB提供程序与OLE DB数据源进行通信。

    它们两者内部均有Connection、Command、DataReader和DataAdapter 4类对象。对于不同的数据提供者,上述4种对象的类名是不同的,而它们连接访问数据库的过程却大同小异。

    这是因为它们以接口的形式,封装了不同数据库的连接访问动作。正是由于这两种数据提供者使用数据库访问驱动程序屏蔽了底层数据库的差异,所以从用户的角度来看,它们的差别仅仅体现在命名上。

   下表描述了这两类数据提供者下的对象命名。

 

对象名

OLE DB数据提供者的类名

SQL Server数据提供者类名

Connection对象

OleDbConnection

SqlConnection 

Command对象

OleDbCommand

SqlCommand

DataReader对象

OleDbDataReader

SqlDataReader

DataAdapter对象

OleDbDataAdapter

SqlDataAdapter













你可能感兴趣的:(【C#】)