代表ADO.NET DataAdapter类型的发展

ADO.NET DataAdapter类代表了微软数据访问模型的一个新的发展。在ADO中并没有真正的ADO.NET DataAdapter类,下面就对ADO.NET DataAdapter类进行学习研究,希望大家多多支持。

DataAdapter对象充当数据库和ADO.NET对象模型中非连接对象之间的桥梁。DataAdapter对象类的Fill方法提供了一种高效机制,用于将查询结果引入DataSet或DataTable中,以便能够脱机处理数据。还可以利用DataAdapter对象向数据库提交存储在DataSet对象中的挂起更改。

ADO.NET DataAdapter类公开了大量属性,这些属性实际上是Command对象。例如,SelectCommand属性包含一个Command对象,该对象表示将用来填充DataSet对象的查询。DataAdapter类还有UpdateCommand,InsertCommand和DeleteCommand等属性,它们分别对应于用来向数据库提交已修改数据行、新建数据行或被删除数据行的Command对象。

这些Command对象提供了更新功能,在ADO和DAO的Recordset对象中,这些更新自动进行。例如,当在ADO中运行一个查询以生成一个Recordset对象时,ADO的游标引擎就会询问数据库中有关此查询的元数据,以确定结果来自哪里。然后ADO会使用该元数据建立更新逻辑,以将Recordset对象中的更改转换为数据库中的更改。

那么ADO.NET的DataAdapter对象为什么拥有单独的UpdateCommand,InsertCommand和DeleteCommand属性呢?这是为了允许开发人员定义自己的更新逻辑。ADO和DAO的更新功能都十分有限,因为这两种对象模型都将Recordset中的更改转换为对数据库中的表进行直接引用的操作查询。为了维护数据的安全性和完整性,许多数据库管理员都限制对其数据库中表的访问,因此更改表内容的唯一途径就是调用存储过程。

ADO.NET DataAdapter类不知道如何使用存储过程提交更改,也没有提供可让开发人员指定自己更新逻辑的机制。ADO.NET DataAdapter则可以。

相关推荐