首页 > 编程 > .NET > 正文

ADO.NET入门(3)

2024-07-10 13:03:32
字体:
来源:转载
供稿:网友
3.dataset, datatable, and recordset

  关于recordset object.,ado.net并没有与其直接相对应的对象.最接近的是datatable 对象.虽然它们二者几乎具有相同的功能,但它们在各自的框架里发挥着不同的作用.

  recordset是一个相当大的对象,具备ado的大多数功能,但在某些方面仍有欠缺. recordset在一些方面性能优良,如:它具可创造性,它可以离线操作,功能众多,但在一些方面仍需改进,如:基于其固有的com特性, recordset很难在网络上连载; recordset是一个二进制的对象,因此不同平台之间的模块很难共享它;还有就是蛇不能够穿过防火墙.另外,它表现的是记录的单个表.如果该table作为一个或几个join的结果,那么它很难更新原始代码源.当你试图将脱线的recordset与原始代码源统一起来时,数据源必须能够识别sql.不管如何,你的recordset可以由非sql 提供程序创建.

  在ado.net中,ado recordset的所有功能被分拆成几块更简单的对象:其中一个便是datareader. datareader模拟了快速,只读,仅向前的只读游标的操作.

  datatable,表现了数据源,是个简单的对象. 你可以手动构造一个datatable,或者也可使用dataset命令自动生成. dataset对于它所包含的数据知之不多.通过它,你可以在内存中处理数据,或者是其它比如排序,编辑,筛选,创建浏览等工作.

  dataset对象是一个数据容器类,是实现ado.net数据抽取的关键对象. dataset集合了一个或几个datatable 对象. datatable 通过如行,列这样的通用集合,公开自身的内容.当你尝试从数据表读取数据时,你也许正穿过了两个不同的层面: datatablemapping 和 dataview.

  datatablemapping 对象包含了数据源中的数据列,以及datatable object之间的映射关系.

  当填充 dataset 时,datasetcommand 对象要使用这个类。它维护数据集中的抽象列和数据源中的物理列之间的链接。

  表的视图通过 dataview 对象实现。它表示 datatable 的自定义视图,可以绑定到特定控件(如 windows 窗体和 web 窗体中的数据网格)中。该对象相当于 sql create view 语句在内存中的实现。

  dataset中所有的表,通过一个公共的域,相互之间能产生关联.它们之间的联系是由datarelation 对象来进行管理.这样说起来挺象ado的数据形成,但还是有一个最大的不同.

  在datarelation里,你不需要使用数据形成语言,而且还可以获得非常灵活的组织架构. 通过ado .net 导航模型,你可以很容易的从某一张表中的主行移动到它的所有子行里.

  datarelation object是关于join 语句在内存中的实现,可用于建立数据类型相同的的parent/child关系,. 一旦关系确立,任何破坏这种关系的修改都被禁止. views和 relations是完成master/detail 架构的两个方法.请记住view仅是加载于记录之上的掩码, 但是relation

  是位于几个列之间的动态链接,在relation下,你无法更改顺序或是设置条件.

  如果你的代码需要1对1的外键关系,而且更改数据,最好不用join命令.如果你需要额外的筛选功能,你可以寻求ado .net自定义视图的支持.

上一篇:ADO.NET入门(5)

下一篇:ADO.NET入门(4)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表