ADO.NET 中的视图和过滤器
ADO.NET 中 有 一 层 对 象 , 用 来 创 建 任 意 数 据 源 的 抽 象 模 型 。 其 中 包 括
DataSet,DataTable,DataRow,DataView,DataRelation 等等。
所有这些对象都定义 在 System.Data 名字空间。 它们形成一个 抽象模型,使 得无论针对 Windows
Form,Web Form 还是 Web Service 进行编程,都可以使用相同的编程接口。
在实际应用中,这些对象大多会对诸如 SQL Server 一类的关系型数据库中的数据进行操作。但是,它们
可以处理各种数据,而不管它的物理存储媒介。
你可以使用 DataSet 对象来打包和关联各表中的数据,用 DataTable 类来处理表格类型的数据,而
DataRow 对象可以处理表中某一行的数据。
这三个对象都是对数据进行打包,但有不同的逻辑聚合层次。DataSet 是 DataTable 和其他的组合。而
DataTable 是 DataRow 和其他的组合。DataRow 是字段和其他的组合。但是这些对象中都没有内建过滤
和排序的功能。
ADO.NET 提供了一些类来处理这个数据库应用程序中的重要方面。在 .Net Beta2 中,这方面最重要的两
个对象就是 DataView 和 DataViewManager。
注意:DataViewManager 是 Beta2 中特有的。在 Beta1 中,相应的功能由 DataSetView 完成。
定制数据视图
DataView 类用来表示定制的 DataTable 的视图。DataTable 和 DataView 的关系是遵循著名的设计模
式--文档/视图模式,其中 DataTable 是文档,而 Dataview 是视图。
在任何时候,你都可以有多个基于相同数据的不同的视图。更重要的是,你可以对每一个具有自己一套属
性、方法、事件的视图作为独立的对象进行处理。这也代表了相对 ADO 一个巨大的飞跃。
ADO Recordset 可以定义过滤字符串。一旦你建立了该字符窜,只有匹配特定标准的数据才能够进行读
写。Filter 属性的工作原理同动态 WHERE 子句很相似。它只是简单的在同一 recordset 对象视图上隐藏
了某些记录。
在 ADO 中,你从没有一个独立的视图对象。一个过滤过的 recordset 总是同一个对象,只不过显示出的记
录比它实际数量少一些而已。
如果你不需要同时处理一些不同的视图,上述问题并不要紧。编程接口赋予了 recordset 既可以是表也可
评论0