`
wsql
  • 浏览: 11752588 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

ADO.NET数据适配器DataAdapter对象的工作原理

 
阅读更多
DataAdapter数据适配器用于在数据源和数据集之间交换数据。在许多应用程序中,这意味着从数据库将数据读入数据集,然后从数据集将已更改数据写回数据库。通常DataAdapter数据适配器是可以配置的,允许指定哪些数据移入或移出数据集。这经常采用的形式是对SQL语句或存储过程的引用,这些语句或存储过程被调用时即可实现对数据库进行读写。

每个数据适配器DataAdapter都将在单个数据源表和数据集内的单个DataTable对象之间交换数据。如果数据集包含多个数据表,通常的策略是令多个数据适配器向数据集提供数据,并将其数据写回各个数据源表。

ADO.NET DataAdapter对象表示一组数据命令和一个数据库连接,用于填充DataSet对象和更新数据源。作为DataSet对象和数据源之间的桥接器,通过映射Fill()方法向DataSet填充数据,通过Update()方法向数据库更新DataSet对象中的变化。这些操作实际上是由AOP.NET DataAdapter对象包含的Select、Update、Insert、Delete四种Command命名对象实现的。也可以直接结合Command对象的使用来完成数据的操作。

DataAdapter对象的工作原理图

在客户端应用程序需要处理数据源的数据时,客户端应用程序与数据源之间建立连接。引用数据命令的DataAdapter对象向数据源发送数据命令请求,这个请求是执行DataAdapter对象的Fill()方法来完成“填充”操作时发送并被数据源执行的。数据源的数据就会填充到客户端的DataSet对象,在DataSet对象内部形成具有跟数据源数据结构一致的数据表DataTable对象,而DataTable对象内部有包含表示数据结构的DataColumn对象集合和表示数据约束的Constraint对象集合,还含有表示数据记录的DataRow对象的集合。数据以及数据结构填充到DataSet对象后,DataSet数据集相当于一个脱机数据库,客户端应用程序操作的数据完全从DataSet数据集中获取。这是客户端DataSet数据集与数据源之间可以断开连接,也就是说它们之间的关系是非永久连接关系。只有客户端完成数据操作需要将数据回传给数据源时,再次建立连接。由DataAdapter对象再次向数据源发送数据命令请求,这个请求是执行DataAdapter对象的Update()方法来完成“更新”操作时发送并被数据源执行的。执行后,连接再次断开。

附:.NET提供程序及其DataAdapter类:

提供程序
DataAdapter
SQL数据提供程序
SqlDataAdapter
OLE DB数据提供程序
OleDbDataAdapter
Oracle数据提供程序
OracleDataAdapter
ODBC数据提供程序
OdbcDataAdapter

分享到:
评论

相关推荐

    ado[1].net中文手册 学习 ado.net的重要资料

    使用 ADO.NET 连接到数据源:描述 ADO.NET Connection 对象,并说明如何使用它来连接到数据源。 执行命令:描述 ADO.NET Command 对象,并说明如何使用它来对数据源执行查询和命令。 使用 DataReader 检索数据:描述 ...

    ado.net 中文手册(html)

    内容如下: ado.net 概述 ado.net 的设计目标 ado.net 结构 .net 数据提供程序 ado.net dataset 为 .net 数据提供程序编写通用代码 ado.net 示例应用程序 使用.net数据提供程序访问...

    C#数据库访问模式

    无连接模式:在无连接模式下,需要处理的数据库服务器中的数据在本地有一个副本,通常保存在DataSet/DataTable中,ADO.NET通过数据适配器(DataAdapter)将本地数据和数据库服务器关联起来;在数据库服务器中取得数据...

    ASP.NET 3.5 开发大全

    7.7 DataAdapter适配器对象 7.8 Command执行对象 7.8.1 ExecuteNonQuery方法 7.8.2 ExecuteNonQuery执行存储过程 7.8.3 ExecuteScalar方法 7.9 DataSet数据集对象 7.9.1 DataSet数据集基本对象 7.9.2 DataTable数据...

    ASP.NET3.5从入门到精通

    7.7 DataAdapter 适配器对象 7.8 Command 执行对象 7.8.1 ExecuteNonQuery 方法 7.8.2 ExecuteNonQuery 执行存储过程 7.8.3 ExecuteScalar 方法 7.9 DataSet 数据集对象 7.9.1 DataSet 数据集基本对象 7.9.2 ...

    ASP.NET 3.5 开发大全word课件

    7.7 DataAdapter适配器对象 7.8 Command执行对象 7.8.1 ExecuteNonQuery方法 7.8.2 ExecuteNonQuery执行存储过程 7.8.3 ExecuteScalar方法 7.9 DataSet数据集对象 7.9.1 DataSet数据集基本对象 7.9.2 DataTable数据...

    ASP.NET 3.5 开发大全11-15

    7.7 DataAdapter适配器对象 7.8 Command执行对象 7.8.1 ExecuteNonQuery方法 7.8.2 ExecuteNonQuery执行存储过程 7.8.3 ExecuteScalar方法 7.9 DataSet数据集对象 7.9.1 DataSet数据集基本对象 7.9.2 DataTable数据...

    ASP.NET 3.5 开发大全1-5

    7.7 DataAdapter适配器对象 7.8 Command执行对象 7.8.1 ExecuteNonQuery方法 7.8.2 ExecuteNonQuery执行存储过程 7.8.3 ExecuteScalar方法 7.9 DataSet数据集对象 7.9.1 DataSet数据集基本对象 7.9.2 DataTable数据...

    ASPNET35开发大全第一章

    7.7 DataAdapter适配器对象 7.8 Command执行对象 7.8.1 ExecuteNonQuery方法 7.8.2 ExecuteNonQuery执行存储过程 7.8.3 ExecuteScalar方法 7.9 DataSet数据集对象 7.9.1 DataSet数据集基本对象 7.9.2 DataTable数据...

Global site tag (gtag.js) - Google Analytics