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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ADO.NET中常用的对象包括: 1. Connection(连接对象):表示与数据库的连接,用于建立和管理与数据库的连接。它提供了与数据库交互的基础功能,如打开连接、关闭连接等。 2. Command(命令对象):表示要在数据库上执行的命令,如SQL语句或存储过程。它可以执行查询、插入、更新、删除等操作,并提供了执行命令和获取结果的方法。 3. DataReader(数据读取器):提供了一种快速、只读的数据访问方式,用于逐行读取数据结果集。它以只进只读的方式访问数据库,适用于大量数据的情况,不需要将整个结果集加载到内存中。 4. DataSet数据集):是一个内存中的数据缓存,可以包含多个数据表、关系和约束。它可以从数据库中填充数据,也可以将修改后的数据提交回数据库,提供了对数据的缓存、操作和管理。 5. DataAdapter数据适配器):用于在DataSet数据源之间进行数据的填充和更新。它可以从数据源中检索数据并将其填充到DataSet中,也可以将DataSet中的数据更新到数据源中。 6. DataTable(数据表):表示内存中的一个表格,包含多个行和列。它是DataSet中的一个成员,用于存储和操作数据。 7. DataCommandBuilder(命令生成器):用于自动生成针对单个表的Insert、Update和Delete命令,简化了更新DataSet数据数据源的操作。 这些对象提供了一系列方法和属性,用于与数据库进行交互、执行命令、读取数据和更新数据等操作,帮助开发人员在.NET平台上进行数据库访问和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值