类型化数据集与非类型化数据集在创建的时候,有什么区别?
- 提问者网友:我的未来我做主
- 2021-05-14 21:19
- 五星知识达人网友:舍身薄凉客
- 2021-05-14 22:28
- 1楼网友:人间朝暮
- 2021-05-14 23:36
typed DataSet是从DataSet派生的,它根据事先定义的Data Schema生成数据集,对数据集中的字段实行强类型约束。你可以通过它产生的cs文件看到许多方法对DataTable的操作进行了封装,这样你就可以通过MyDataSet.MyTable.Field对字段进行访问,而不是像DataSet那样: MyDataSet.Tables["TableName"]["Field"]; 简化了编程,同时不容易出错,想象一下如果在"Field"中拼错了字段名,那么编译器也不会检查出来,对于typed DataSet就不用了,如果你Field写错的话,那么马上就可以知道。 还有就是如果你在Typed DataSet包含多数据集,同时在XSD中对这些数据集建立关系和约束,那么Type DataSet会生成相应的方法来反映这些关系和约束。如果使用untyped DataSet,你需要自己做。 性能上的考虑:虽然Typed DataSet创建对象实例的时候比unTypede DataSet要多一些开销(时间和空间),但是在填充数据的时候要比untyped DataSet快,这是因为DataAdapter已经知道怎么Fill一个Typed DataSet,相比之下,DataSet需要两次读取数据库,第一次取得数据库中表的结构信息,第二次才fill数据。 Typed DataSet相对于DataSet的缺陷:除了创建的开销之外,Typed DataSet不如DataSet灵活,因为Typed DataSet一旦确定,数据表的结构就固定了,如果需要修改,必须重新生成。 而DataSet你可以随时根据需要进行操作(比如添加字段,删除字段等)。
- 2楼网友:独行浪子会拥风
- 2021-05-14 23:21
简单的说... 类型化数据集就是具有内置架构的强类型DataSet... 非类型化数据集就是没有内置架构的DataSet... 类型化数据集是对象集合... 而非类型化数据集只是一些二维表...
DataSet就分为强类型和普通类型的 强类型的优点就是类型是安全的 了解Hibarnate么? 对象型的语言和关系型数据库之间的关系 可以解释成映射,也就是说,我会把数据库中的每一条记录,都映射成一个对象 字段对应的就是对象的属性,所以,我操作记录的时候,就像操作一个对象一样,类型安全,而且方便 理解了这个,就理解强类型数据集和弱类型的区别了 假如弱类型,你操作的时候是这样的:DataSet.Tables[0].Rows[0][1]="
我学的不是这一类,你还是好好去研究一下吧?