DataSet 类 (一)

DataSet是表和列结构在内存中的表示方式,DataSet支持多表、表间关系、数据约束等,和关系数据库的模型基本一致。(本质上是微型的数据库。包含一组DataTable对象和DataTable之间的连接关系。不包含数据库连接的概念,也就是说其中的数据可以不是来自数据库,可以是读取的文件中的数据。DataTable包含一些DataRowDataColumn表示数据库表中的行和列,通过他们可以获取表、行和列的元素,且支持主键和外键。

       DataSet的数据集是与数据库断开的,DataSet中可包括多个DataTable(可将多个查询结构存到一个DataSet中)。而DataTable中又包括多个DataRowDataColumn,可通过DataRowDataColumn来查看、操作其中的数据。如果要将操作后的结果集返回给数据库,则用DataAdapterUpdate方法。

       DataSet 可将数据和架构作为 XML 文档进行读写。可使用 WriteXmlSchema 方法将架构保存为 XML 架构,并且可以使用 WriteXml 方法保存架构和数据。若要读取既包含架构也包含数据的 XML 文档,请使用 ReadXml 方法。

1、DataSet的特点

1DataSet中的数据集是脱机的。

2DataSet中的数据集可以在任何时候去读取或修改。

3DataSet中中的 DataTable 对象是按条件区分大小写的。(例如,如果一个 DataTable 被命名为mydatatable,另一个被命名为Mydatatable,则用于搜索其中一个表的字符串被认为是区分大小写的。但是,如果mydatatable存在而Mydatatable不存在,则认为该搜索字符串不区分大小写)。

4典型的多层实现中,创建和刷新 DataSet 并依次更新原始数据的步骤: 

      A:通过 DataAdapter 使用数据源中的数据生成和填充 DataSet 中的每个 DataTable

      B:通过添加、更新或删除 DataRow 对象更改单个 DataTable 对象中的数据。

     C:调用 GetChanges 方法以创建只反映对数据进行的更改的第二个 DataSet

     D:调用 DataAdapter 的 Update 方法,并将第二个 DataSet 作为参数传递。

     E:调用 Merge 方法将第二个 DataSet 中的更改合并到第一个中。

     F:针对 DataSet 调用 AcceptChanges。或者,调用 RejectChanges 以取消更改。

2、常用属性

     CaseSensitive:用于控制DataTable中的字符串比较是否区分大小写。

    DataSetName:当前DataSet的名称。如果不指定,则该属性值设置为"NewDataSet"。如果将DataSet内容写入XML文件,DataSetNameXML文件的根节点名称。

    DesignMode:如果在设计时使用组件中的DataSetDesignMode返回True,否则返回False

    HasErrors:表示DataSet中的DataRow对象是否包含错误。如果将一批更改提交给数据库并将DataAdapter对象的ContinueUpdateOnError属性设置为True,则在提交更改后必须检查DataSetHasErrors属性,以确定是否有更新失败。

    NameSpacePrefix:指定XML命名空间和前缀

    Relations:返回一个DataRelationCollection对象。

    Tables获取包含在 DataSet 中的表的集合。通过索引访问DataTable有更好的性能。

     DefaultViewManager获取 DataSet 所包含的数据的自定义视图,以允许使用自定义的 DataViewManager 进行筛选、搜索和导航。

     Events获取附加到该组件的事件处理程序的列表。

    Namespace获取或设置 DataSet 的命名空间。

     Prefix获取或设置一个 XML 前缀,该前缀是 DataSet 的命名空间的别名。

     Relations:获取用于将表链接起来并允许从父表浏览到子表的关系的集合。

3、方法

AcceptChanges提交自加载此 DataSet 或上次调用 AcceptChanges 以来对其进行的所有更改。
BeginInit开始初始化在窗体上使用或由另一个组件使用的 DataSet。初始化发生在运行时。
Clear:通过移除所有表中的所有行来清除任何数据的 DataSet
Clone复制 DataSet 的结构,包括所有 DataTable 架构、关系和约束。不要复制任何数据。
Copy复制该 DataSet 的结构和数据。
CreateDataReader: 为每个 DataTable 返回带有一个结果集的 DataTableReader,顺序与 Tables 集合中表的显示顺序相同。
EndInit结束在窗体上使用或由另一个组件使用的 DataSet 的初始化。初始化发生在运行时。
Equals确定指定的 Object 是否等于当前的 Object
GetChanges 获取 DataSet 的副本,该副本包含自上次加载以来或自调用 AcceptChanges 以来对该数据集进行的所有更改。
GetType获取当前实例的 Type
GetXml返回存储在 DataSet 中的数据的 XML 表示形式。
GetXmlSchema返回存储在 DataSet 中的数据的 XML 表示形式的 XML 架构。
HasChanges该值指示 DataSet 是否有更改,包括新增行、已删除的行或已修改的行。
InferXmlSchema将 XML 架构应用于 DataSet
Load 通过所提供的 IDataReader,用某个数据源的值填充 DataSet
Merge:将指定的 DataSetDataTable 或 DataRow 对象的数组合并到当前的 DataSet DataTable 中。
OnRemoveRelation当从 DataTable 中移除 DataRelation 对象时发生。
OnRemoveTable当从 DataSet 中移除 DataTable 时发生。
ReadXml 将 XML 架构和数据读入 DataSet
ReadXmlSchema 将 XML 架构读入 DataSet
RejectChanges回滚自创建 DataSet 以来或上次调用 DataSet.AcceptChanges 以来对其进行的所有更改。
Reset将 DataSet 重置为其初始状态。子类应重写 Reset,以便将 DataSet 还原到其原始状态。
WriteXml 从 DataSet 写 XML 数据,还可以选择写架构。
WriteXmlSchema 写 XML 架构形式的 DataSet 结构。

4、事件

Disposed添加事件处理程序以侦听组件上的 Disposed 事件。
Initialized初始化 DataSet 后发生。
MergeFailed当目标和源 DataRow 的主键值相同且 EnforceConstraints 设置为真时发生。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值