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