DataSet层次结构中的类请参见表所示:

说明
DataTableCollection
包含特定数据集的所有DataTable对象
DataTable
表示数据集中的一个表
DataColumnCollection
表示DataTable对象的结构
DataRowCollection
表示DataTable对象中的实际数据行
DataColumn
表示DataTable对象中列的结构
DataRow
表示DataTable对象中的一个数据行
//多表多行多列的情况
foreach (DataTable dt in YourDataset.Tables) //遍历所有的datatable
{
foreach (DataRow dr in dt.Rows) ///遍历所有的行
foreach (DataColumn dc in dt.Columns) //遍历所有的列
Console.WriteLine(“{}, {}, {}”, dt.TableName, dc.ColumnName, dr[dc]); //表名,列名,单元格数据
}
//遍历一个表多行多列
foreach(DataRow mDr in dataSet.Tables[].Rows )
{
foreach(DataColumn mDc in dataSet.Tables[].Columns)
{
Console.WriteLine(mDr[mDc].ToString());
}
}
//遍历一个表多行一列
foreach(DataRow row in DataSet1.Tables[].Rows)
{
Console.WriteLine(row[].ToString());
} //一行一列
ds.Tables[].Rows[]["字段"]

关于DataTableCollection

关于DataTable

关于DataColumnCollection

DataColumnCollection      问题一:

一是DataColumnCollection是怎么被DataTable类实例化的?因为我无法用new直接实例化它,这种现象普遍存在于.NET中。
二是DataColumn中的Table字段是只读的(定义中只有get,无set)那么,当我new了一个DataColumn时,这个
DataColumn的Table字段是NULL,为什么当由DataTable.Columns.Add()添加后,DataColumn.Table
字段被赋值了,怎么做到的?

DataColumnCollection        回答一:
1.扩展方法,当你用扩展方法去获取DataTable中的列集合,就会返回一个DataColumnCollection类型
2.DataColumn中的Table字段,表示它的父控件,也就是它是属于哪一个DataTable
搜一搜:属性
属性其实是个函数(get,set),它并不是一个变量,所以也不存在什么时候赋值.你什么时候去取值,就会调用函数去对应的地方取,取不到就是null呗
DataColumnCollection         回答一:
datatable初始化时创建的
this.columnCollection = new DataColumnCollection(this);
DataColumnCollection初始化时,table就被传入了

C# code?
1
2
3
4
5
6
7
8
9
10
internal DataColumnCollection(DataTable table)
{
    this._list = new ArrayList();
    this.defaultNameIndex = 1;
    this.columnsImplementingIChangeTracking = DataTable.zeroColumns;
    this.table = table;
    this.columnFromName = new Hashtable();
}
 
  

关于DataRowCollection

关于DataColumn

关于DataRow

DataSet 图解的更多相关文章

  1. 【神经网络与深度学习】【计算机视觉】图解YOLO

    图解YOLO 晓雷 3 个月前 YOLO核心思想:从R-CNN到Fast R-CNN一直采用的思路是proposal+分类 (proposal 提供位置信息, 分类提供类别信息)精度已经很高,但是速度 ...

  2. 论文翻译 DOTA:A Large-scale Dataset for Object Detection in Aerial Images

      简介:武大遥感国重实验室-夏桂松和华科电信学院-白翔等合作做的一个航拍图像数据集 摘要: 目标检测是计算机视觉领域一个重要且有挑战性的问题.虽然过去的十几年中目标检测在自然场景已经有了较重要的成就 ...

  3. 图解CSS3制作圆环形进度条的实例教程

    圆环形进度条制作的基本思想还是画出基本的弧线图形,然后CSS3中我们可以控制其旋转来串联基本图形,制造出部分消失的效果,下面就来带大家学习图解CSS3制作圆环形进度条的实例教程 首先,当有人说你能不能 ...

  4. 《图解HTTP》读书笔记

    目前国内讲解HTTP协议的书是在太少了,记忆中有两本被誉为经典的书<HTTP权威指南>与<TCP/IP详解,卷1>,但内容晦涩难懂,学习难度较大.其实,HTTP协议并不复杂,理 ...

  5. [PostgreSQL] 图解安装 PostgreSQL

    图解安装 PostgreSQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5894462.html 序 园友的一篇<Asp.Net Cor ...

  6. HTML5 数据集属性dataset

    有时候在HTML元素上绑定一些额外信息,特别是JS选取操作这些元素时特别有帮助.通常我们会使用getAttribute()和setAttribute()来读和写非标题属性的值.但为此付出的代价是文档将 ...

  7. 图解ios程序生命周期

    图解ios程序生命周期 应用程序启动后状态有Active.Inactive.Background.Suspended.Not running这5种状态,几种状态的转换见下图: 在AppDelegate ...

  8. C#读取Excel,或者多个excel表,返回dataset

    把excel 表作为一个数据源进行读取 /// <summary> /// 读取Excel单个Sheet /// </summary> /// <param name=& ...

  9. DataTable DataRow DataColumn DataSet

    1.DataTable 数据表(内存) 2.DataRow DataTable 的行 3.DataColumn DataTable 的列 4.DataSet 内存中的缓存

随机推荐

  1. Silverlight Application 无法调用js的方法

    今天下午做项目的时候遇到了这个错误 找了很多原因没找出,在蛋疼之际找出了问题, Silverlight调js方法的时候 js方法里面不能出现一点问题,如果有一点问题就会报这个错误.

  2. eclipse中Java代码导入包,出现main.java前缀

    1.工程右击,按照下图指示的选择 2.按照下图,进行删除选中项,然后点击OK保存

  3. struts2的注解配置全面解析

    以前在用struts2的注解配置时总是要在web.xml中配置一个初始化参数(actionPackages),最近发现不灵了,仔细研究了下发现即使不用在web.xml中配置也能成功,但时灵时不灵的,很 ...

  4. ThinkPhp调用webservice

    模板页: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

  5. python 在linux下通过top,和dh命令获得cpu,内存,以及硬盘信息

    主要是通过os.popen读取命令输出实现的,os.popen启动新的进程,且将外部命令的输出作为文件类型对象返回.不能获得外部命令的返回值.既然是文件对象就可以直接用for in 来读取,代码如下: ...

  6. python随机产生4个互不相等的随机数

    从0-9中随机产生4个互不相等的数, 方法一: import random s=[] while(len(s)<4): x=random.randint(0,9) if x not in s: ...

  7. mysqldump 的方式来搭建master-->slave 的复制架构

    1.master 上要满足的最小条件: 1.server_id 已经设置成了一个非0值 2.log_bin 配置好binlog 2.slave 上要满足的最小条件 1.server_id 已经设置成了 ...

  8. mysql索引分类及注意事项

    MYSQL索引主要分为四类:主键索引,普通索引(聚合,非聚合),唯一索引,全文索引 全文索引,主要是针对对文件,文本的检索, 比如文章, 全文索引针对MyISAM有用. 索引的原理:利用二叉树(哈希表 ...

  9. Codeforces 494B Obsessive String

    http://www.codeforces.com/problemset/problem/494/B 题意:给出两个串S,T,求有几种将S分成若干个子串,满足T都是这若干个子串的子串. 思路:f[n] ...

  10. gcc的stdcall扩展

    MSVC上: 如果是函数调用约定直接就写 __stdcall 之类的就行了 如果是gcc上: 函数的扩展调用约定要这样写 __attribute__((__stdcall__)),默认为__attri ...