ADO.NET的结构——ADO.NET学习&应用笔记之一

原创 2004年08月27日 17:18:00

ADO.NET的核心组件由Data Provider模块和DataSet模块组成。Data Provider程序库实现数据的连接、操作和对数据快速只进只读访问。DataSet实现独立于数据源的数据访问、操作,有点类似于ADO的断开连接的静态数据集。

ADO.NET的结构图如下:
o_ADO.NET1.gif


一、.NET Framework Data Provider
.NET Framework数据提供程序是一组连接数据源,并且能够对数据执行命令,获取数据的程序结构。

(一).NET Framework的四个数据提供程序
.NET Framework提供了四组数据提供程序,用于访问四类数据源。
1、SQL Server .NET Framework数据提供程序,该程序只能访问MS SQL Server7.0或更高版本,更早版本的只能通过OLE DB数据提供程序访问。它的命名空间为System.Data.SqlClient。
2、OLE DB .NET Framework 数据提供程序,用于访问OLE DB数据提供程序,该程序不支持OLE DB 2.5版接口。它的命名空间为System.Data.OleDb。
3、ODBC .NET Framework 数据提供程序。用于访问ODBC数据提供程序。它的命名空间为System.Data.Odbc。
4、Oracle .NET Framework 数据提供程序。用于访问Oracle数据,该程序需要Oracle客户端软件8.1.7或更高版本的支持。它的命名空间为System.Data.OracleClient。

通过对IDbConnection接口、IDbCommand接口、IDataAdapter接口、IDbDataAdapter接口、IDataReader接口、IDataParameter接口、IDbTransaction接口等的实现我们也可以编写自己的数据提供程序组。


(二).Net数据提供程序的四个核心对象
.Net数据提供程序通常包含有四个核心对象:
1、Connection 对象提供与数据源的连接。数据提供程序的Connection类是继承System.Data.IDbConnection接口的实现。
2、Command对象使您能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。数据提供程序的Command类是继承System.Data.IDbCommand接口的实现。
3、DataReader 从数据源中提供高性能的数据流。DataReader的数据流是只进且只读的。数据提供程序的DataReader类是继承System.Data.IDataReader接口的实现。
4、DataAdapter 提供连接DataSet对象和数据源的桥梁。DataAdapter 使用Command 对象在数据源中执行 SQL 命令,以便将数据加载到 DataSet 中,并使对 DataSet中数据的更改与数据源保持一致。数据提供程序的DataAdapter类是继承System.Data.IDbDataAdapter接口的实现。
.Net数据提供程序还包括Transaction对象、Parameter对象等。


二、.NET Framework DataSet
连接、命令、事务、数据读取作用于特定的提供程序,唯有数据集可以独立于特定的数据提供的,在.NET Framework中数据集对象DataSet的命名空间位于System.Data中。

(一)、DataSet对象模型
DataSet对象是支持ADO.NET的断开式、分布式数据方案的核心对象。DataSet是数据的内存驻留表示形式,无论数据源是什么,它都会提供一致的关系编程模型。你可以把它想象成一个浓缩在内存当中的关系数据库。它的对象模型如下图:
o_ADO.NET2.gif

DataSet包含三组集合:
(1)、DataTableCollection。关系数据库当中最主要的对象就是Table,那么在DataSet当中使用该集合来包含多个DataTable对象。DataTable就是是在内存中的数据表,你可以通过唯一名称来标识一个表。DataSet的DataTable可存储的最大行数是16,777,216。
(2)、DataRelationCollection。在关系数据库当中除了表之外,还有表示表和表之间的关系Relation。该集合就是包含表关系对象的集合。
(3)、ExtendedProperties。该是一组自定义信息,概念上点类似于ASP的Session之类的。


(二)、DataSet与DataAdapter
DataAdapter对象是数据提供程序和DataSet连接的桥梁。数据提供程序的DataAdapter类是IDataAdapter或者IDbDataAdapter的实现。通常DataAdapter的构造函数是:
XxxDataAdapter(SqlCommand selectCommand)
XxxDataAdapter(String selectCommandText, String selectConnectionString)
XxxDataAdapter(String selectCommandText, SqlConnection selectConnection)

DataAdapter通过实现Fill、FillSchema将数据源数据、架构等添加到DataSet中,通过实现Update将DataSet中的数据更新到数据源中。

 

相关资源:
1、.NET Framework SDK之ADO.NET概述
2、《类似数据库的数据容器(深入研究数据访问)》 Dino Esposito
http://www.microsoft.com/china/MSDN/library/data/dataAccess/Database-like%20Data%20Containers.mspx
3、《剖析 .NET 托管提供程序》 Dino Esposito
http://www.microsoft.com/china/MSDN/library/data/dataAccess/Inside.NETManagedProviders.mspx
4、MSDN数据访问专栏
http://www.microsoft.com/library/mnp/2/aspx/framesmenu.aspx?url=/china/MSDN/library/data/default.mspx

ADO.NET中5大对象简介

ADO.NET
  • haiyan_cf
  • haiyan_cf
  • 2014年05月28日 17:20
  • 3692

数据库访问方式(ODBC OLEDB ADO ADO.NET)

ODBC(Open Database Connectivity,开放数据库互连) 1992年,微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有...
  • lxd8731247769
  • lxd8731247769
  • 2016年01月02日 09:36
  • 1556

两种数据访问方式:从ADO 到ADO.NET

电脑最大的好处就是可以帮助人处理大量数据,由此离不开对数据库的访问,先看看最近在做ASP.NET例子的时候经常用到的ADO.NET的数据库访问方式。...
  • u010927640
  • u010927640
  • 2016年03月13日 17:17
  • 3153

学习笔记——ADO.NET

连接数据库——Connection对象     Connection对象是一个连接对象,主要功能是建立于物理数据库的连接         SQL Server数据提供程序,位于System.Dat...
  • celte
  • celte
  • 2013年05月05日 02:25
  • 633

黑马程序员——ADO.NET 及其应用

---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ---------------------- 在控制台中用ado.net ...
  • keda218
  • keda218
  • 2011年12月20日 21:30
  • 114

ADO.Net基础-学习笔记

1.执行查询: 执行多行结果集的用executeReader;查询结果是放到数据库中,GetString、GetInt32 等方法只是接收整数参数,也就是序号,用GetOrdinal方法根...
  • lyc9102
  • lyc9102
  • 2014年03月23日 17:07
  • 497

ADO.NET学习笔记(三)

(1)登陆窗体的登陆过程验证: using System; using System.Windows.Forms; using System.Data.SqlClient; namespace...
  • zhx278171313
  • zhx278171313
  • 2013年09月08日 13:07
  • 660

黑马程序员之ADO.NET学习笔记:SqlDataReader(数据流读取器)

1.基本用法 using (SqlConnection conn =new SqlConnection(""))  {             conn.Open();             S...
  • xutingzhou
  • xutingzhou
  • 2012年09月07日 11:25
  • 335

黑马程序员—学习笔记之ADO.Net

---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------一、ADO.Net 程序和数据库交互需...
  • J_adam
  • J_adam
  • 2011年11月22日 22:08
  • 382

ADO.NET学习笔记(六)

ADO.NET 简单的数据库验证,老鸟请绕道
  • zhx278171313
  • zhx278171313
  • 2014年03月16日 09:48
  • 831
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ADO.NET的结构——ADO.NET学习&应用笔记之一
举报原因:
原因补充:

(最多只允许输入30个字)