黑马程序员技术交流社区

标题: ADO.NET中DataSet数据集问题? [打印本页]

作者: 李永涛    时间: 2012-12-1 22:34
标题: ADO.NET中DataSet数据集问题?
DataSet数据集的类型分为类型化数据集和非类型化数据集,搞不懂它们是什么概念,有何区别?非类型化数据集为什么不能用于借助XML结构文件派生新类?
作者: 快乐之恋    时间: 2012-12-3 12:53
类型化数据集先是从基类 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"];





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2