为缩短代码,xml文件的部分内容:
<?xml version="1.0" standalone="yes"?>
<SiteConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/PortalCfg.xsd">
<Global PortalId="0" PortalName="ASP.NET Portal Starter Kit" AlwaysShowEditButton="false" />
</SiteConfiguration>
私有成员:
1. 有多少个表就有多少个私有成员,
2. 加一个 System.Data.SchemaSerializationMode 成员,指示类型化 DataSet 的架构序列化模式。
两个构造函数:
一般用无带参数的创建 DataSet 实例。
属性:
1. 直接返回所有表私有成员
2. SchemaSerializationMode:返回和设置对应的私有成员。
3. System.Data.DataTableCollection Tables:表示 DataSet 的表的集合。return base.Tables;
4. System.Data.DataRelationCollection Relations:表示此 DataSet 的 DataRelation 对象的集合。return base.Relations;
DataRelation 对象:表示两个 DataTable 对象之间的父/子关系。
重载方法:
1. InitializeDerivedDataSet:担了吾清吾楚(多内容)
2. Clone:复制 DataSet 的结构,包括所有 DataTable 架构、关系和约束。不要复制任何数据。(多内容)
3. ShouldSerializeTables:获取一个值,该值指示是否应该保持 Tables 属性。return false;
4. ShouldSerializeRelations:获取一个值,该值指示是否应该保持 Relations 属性。
5. ReadXmlSerializable:担了吾清吾楚(多内容,与多少个表有关)
6. GetSchemaSerializable:担了吾清吾楚(多内容,返回 Xml 架构对象模型层次结构的根类,System.Xml.Schema.XmlSchema)
自定义方法:
1. internal void InitVars():this.InitVars(true);
2. internal void InitVars(bool initTable)
3. private void InitClass():初始化 DataSet 实例,向Tables Add,建立各表之间的父/子关系等
4. private bool ShouldSerializeGlobal():return false;
有多少个表,就多少个ShouldSerialize+表名()方法:都 return false;
5. private void SchemaChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e):事件处理程序
6. public static System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(System.Xml.Schema.XmlSchemaSet xs):两类一样
委托:
1. public delegate void GlobalRowChangeEventHandler(object sender, GlobalRowChangeEvent e);
有多少个表,就多少个 表名+RowChangeEventHandler(object sender, GlobalRowChangeEvent e)委托
嵌套类:
每个表有 3 个类:
一个是继承 System.Data.DataTable(表示DataSet里的一个DataTable)且实现 System.Collections.IEnumerable 接口。
该类主要定义各列,构造函数,增加行方法,取列值,行更改、删除等事件及处理程序,初始化各列值,重载基类的各个常见方法。
一个是继承 System.Data.DataRow(表示 DataTable 中的一行数据。)
该类主要获取、设置和判断行中各列的值,
一个是继承 System.EventArgs(EventArgs 是包含事件数据的类的基类。),是事件处理程序,与定义的委托关联。