【C#关键字】DataSet

本文详细介绍了DataSet和DataTable在.NET中的角色,包括它们的功能、创建方式、常用属性和方法,以及如何遍历和获取数据。特别强调了DataSet作为解决DataReader局限性的一种解决方案。
摘要由CSDN通过智能技术生成
1、DataSet是数据集,DataTable是数据表,DataSet存储多个DataTable。
DataSet和DataTable像是专门存储数据的一个容器,在你查询数据库得到一些结果时可以存在里面。

2、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]);
 

DataSet中取值:
1 DataSet.Table[0].Rows[ i ][ j ]
         其中i 代表第 i 行数, j 代表第 j 列数
  
2 DataSet.Table[0].Rows[ i ].ItemArray[ j ]
        其中i 代表第 i 行数, j 代表第 j 列数
  
3 DataSet.Tables[0].Columns.Count
        取得表的总列数
  
4 DataSet.Tables[0].Rows.Count
       取得表的总行数
  
5 DataSet.Tables[0].Columns[ i ].ToString()
       取得表的 i 列名
  
注意:行和列的计算,都是从0开始
  
 
1. 第一行第一列的值
      DataSet ds=new DataSet();
      ds.Tables[0].Rows[0][0].ToString();
 
2.第一行对应列的字段名 
ds.Tables[0].Rows[0]["字段名"].ToString();
dbset.tables(0).rows(0).item("第一列的列名") 
 
3. 行、列总数   
  DataSet_x.Tables[ "TableName "].Rows.Count 
  DataSet_y.Tables[ "TableName "].Columns.Count  
 
4. 取某一列的值
   dataset.Tables["PersonInfo"].Rows[0]["age"].ToString();
 
5.向DataSet中插入新的一列
   DataSet ds = new DataSet();
   ds.Table[0].Columns.Add("字段名","字段类型");
 
6. 向DataSet中添加一行记录    dataset ds=new dataset(); 
   DataRow dr = ds.Tables[0].NewRow();
   dr["Finishdate"] = finishdate;
   dr["Operator"] =Operator;
   dr["disp"] =disp;
   ds.Tables[0].Rows.Add(dr);

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值