A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李永涛 中级黑马   /  2012-12-1 22:34  /  1147 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

DataSet数据集的类型分为类型化数据集和非类型化数据集,搞不懂它们是什么概念,有何区别?非类型化数据集为什么不能用于借助XML结构文件派生新类?

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

1 个回复

倒序浏览
类型化数据集先是从基类 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"];
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马