类型化数据集先是从基类 DataSet 派生,然后使用“数据集设计器”中的信息(存储在 .xsd 文件中)生成一个新的强类型数据集类。架构中的信息(表、列等)被作为一组第一类对象和属性生成并编译为此新数据集类。由于类型化数据集继承自基 DataSet 类,因此类型化类具有 DataSet 类的所有功能,可以与采用 DataSet 类的实例作为参数的方法一起使用。
相形之下,非类型化数据集没有相应的内置架构。与类型化数据集一样,非类型化数据集也包含表、列等,但它们只作为集合公开。(不过,在手动创建了非类型化数据集中的表和其他数据元素后,可以使用数据集的 WriteXmlSchema 方法将数据集的结构导出为一个架构。)
对比类型化和非类型化数据集中的数据访问
类型化数据集的类有一个对象模型,在此对象模型中该类的属性采用表和列的实际名称。例如,如果使用的是类型化数据集,可以使用如下代码引用列:
// This accesses the CustomerID column in the first row of the Customers table.
string customerIDValue = northwindDataSet.Customers[0].CustomerID;
相比较而言,如果使用的是非类型化数据集,等效的代码为:
string customerIDValue = (string)
dataset1.Tables["Customers"].Rows[0]["CustomerID"];
|