DataSet是数据集,DataTable是数据表,DataSet存储多个DataTable。DataSet和DataTable像是专门存储数据的一个容器,在你查询数据库得到一些结果时可以存在里面。
DataSet功能强大有浏览、排序、搜索、过滤、处理分级数据、缓存更改等功能,还可以与XML数据互换。DataSet中可包括多个DataTable,可将多个查询结构存到一个DataSet中,方便操作 ADO.NET开发人员为方便数据处理开发出来的,是数据的集合,为解决DataReader的缺陷设计的,DataReader数据处理速度快,但它是只读的,一旦移到下一行就不能查看上一行的数据,DataSet则可以自由移动指针。DataSet的数据是与数据库断开的。DataSet还可用于多层应用程序中,如果应用程序运行在中间层的业务对象中来访问数据库,则业务对象需将脱机数据结构传递给客户应用程序。
DataSet的三种创建方式:
DataTable() 不带参数初始化DataTable 类的新实例。
DataTable(string tableName) 用指定的表名初始化DataTable 类的新实例。 DataSet的常用属性介绍 : CaseSensitive 指示表中的字符串比较是否区分大小写。如果是区分大小写则为false,默认值为false。 ChildRelations 获取此DataTable 的子关系的集合。 Columns 获取属于该表的列的集合。 Constraints 获取由该表维护的约束的集合。 DataSet 获取此表所属的DataSet。DataSet相关信息,可见我以前的一篇文章《数据访问(2)-DataSet》 DefaultView 获取可能包括筛选视图或游标位置的表的自定义视图。 HasErrors 获取一个值,该值指示该表所属的DataSet 的任何表的任何行中是否有错误。 MinimumCapacity 获取或设置该表最初的起始大小。该表中行的最初起始大小。默认值为 50。 Rows 获取属于该表的行的集合。 TableName 获取或设置DataTable 的名称。
DataSet常用方法 :
Clear() 清除所有数据的DataTable。
Clone() 克隆DataTable 的结构,包括所有DataTable 架构和约束。 EndInit() 结束在窗体上使用或由另一个组件使用的DataTable 的初始化。初始化发生在运行时。 ImportRow(DataRow row) 将DataRow 复制到DataTable 中,保留任何属性设置以及初始值和当前值。 Merge(DataTable table) 将指定的DataTable 与当前的DataTable 合并。 NewRow() 创建与该表具有相同架构的新DataRow。 AcceptChanges() 提交自上次调用AcceptChanges() 以来对该表进行的所有更改。 BeginInit() 开始初始化在窗体上使用或由另一个组件使用的DataTable。初始化发生在运行时。遍历DataSet的方法
foreach(DataTable dt in dataSet.Tables)
foreach(DataRow dr in dt.Rows)
foreach(DataColumn dc in dr.Table.Columns)
Console.WriteLine(dr[dc]);