全面分析ADO.NET数据集类型

开发 后端
这里介绍了ADO.NET数据集类型分为类型化数据集和非类型化数据集。文章还总结了小知识点关于typed DataSet和untyped DataSet的总结。

ADO.NET数据集有很多值得学习的地方,这里我们主要介绍ADO.NET数据集类型,包括介绍typed DataSet和untyped DataSet等方面。ADO.NET数据集类型分为类型化数据集和非类型化数据集,关于对他们的描述请参见图所示:

 

ADO.NET数据集类型图


使用类型化数据集访问列,参见如下代码:

  1. string employeeName;  
  2. employeeName = dsEmployees.Emp[0].EmpName; 

从dsEmployees数据集的Emp表中***个记录返回EmpName列,然后将其存储在employeeName字符串变量中。使用非类型化数据集访问列 ,参见如下代码:

  1. string employeeName;  
  2. employeeName = dsEmployees.Tables["Emp"].Rows[0]["EmpName"]; 

使用Tables集合返回EmpName列。
 
小知识:

typed DataSet和untyped DataSet

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你可以随时根据需要进行操作(比如添加字段,删除字段等)。

【编辑推荐】

  1. LINQ to SQL查询分析
  2. LINQ查询架构简单介绍
  3. LINQ to SQL映射关系概述
  4. LINQ To SQL对象模型浅析
  5. LINQ to SQL映射列描述
责任编辑:田树 来源: 博客
相关推荐

2009-11-13 17:20:35

ADO.NET数据集工

2009-11-11 15:09:35

ADO.NET数据集

2009-11-12 14:37:26

ADO.NET结构

2009-12-30 14:59:42

ADO.NET数据集

2009-12-25 16:36:43

ADO.NET数据集

2011-05-20 15:45:52

数据集

2009-11-04 17:03:55

ADO.NET Exc

2010-01-04 13:47:18

ADO.NET数据集

2009-10-29 10:20:19

ADO.NET使用

2009-11-13 09:53:47

ADO.NET权限集

2009-11-03 15:47:10

ADO.NET数据异步

2009-12-29 14:41:13

ADO.NET 数据集

2009-10-29 10:00:53

ADO.NET数据集

2009-11-13 09:45:54

ADO.NET程序集

2009-12-30 15:06:22

ADO.NET分析

2009-10-29 11:08:20

ADO.NET Dat

2009-11-11 09:48:08

ADO.NET Com

2009-11-12 13:19:55

2009-11-04 11:02:23

ADO.NET Dat

2009-11-04 13:51:46

ADO.NET性能
点赞
收藏

51CTO技术栈公众号