在C#中,DataRow和Rows是什么区别?
1个回答
展开全部
首先这些都是C#的类,也就是对象。
他们分别是上一级的成员对象,举个形象的例子
dataset是数据集,他内部可以包含多个datatable对象和数据集本身的信息。就像学校。
datatable是数据表,他内部包含多个datarow对象 ,就像是班级,
datarow 是数据行对象,他内部有包含多个数据列。 就像是某个班级里座位的行
而 tables就是 dataset里的数据表datatable对象集合。 好比说学校里的班级,这个班级是个集合。
同理rows就是table里的datarows对象集合,好比某个班级里的所有座位行,这个行是个集合。
研究起来就是,学校(dataset)里的班级(tables)中某个班级(table)中有很多行座位(rows),其中一行座位(datarow)中的第三位坐了一个美女(dataset.tables[1].rows[1][2])。
希望你能明白
他们分别是上一级的成员对象,举个形象的例子
dataset是数据集,他内部可以包含多个datatable对象和数据集本身的信息。就像学校。
datatable是数据表,他内部包含多个datarow对象 ,就像是班级,
datarow 是数据行对象,他内部有包含多个数据列。 就像是某个班级里座位的行
而 tables就是 dataset里的数据表datatable对象集合。 好比说学校里的班级,这个班级是个集合。
同理rows就是table里的datarows对象集合,好比某个班级里的所有座位行,这个行是个集合。
研究起来就是,学校(dataset)里的班级(tables)中某个班级(table)中有很多行座位(rows),其中一行座位(datarow)中的第三位坐了一个美女(dataset.tables[1].rows[1][2])。
希望你能明白
追问
最后这一句代码还是没有懂,比如我有一个表,学生信息表studentinfo:里面包括学生id、name、age、sex。那我可以认为这是一个table,这个表分别有:
1、张三、20、男,
2、李四、21、女,
3、王五、20、男;这三条数据。
那么这三条数据就分别是daterow集合里面的rows,而表示id为1学生的姓名张三:就是table[0].rows[1],对吗?
追答
对的, 取某行数据的具体值
比如姓名
其实是 table[0].rows[0]["name"];
上边的最后“name”实际上是 dataset中tables中的第一个table 中的第一行中的第【“name”】列
而这个 ["name"]也可以换成[1]因为 C#集合的索引是从0开始,而name是第二列,所以可以是
table[0].rows[0][1]=="张三";
而为什么 rows后边跟了两个中括号呢?
是因为 tables 中table是一个复合类,
通过dataset.tables[0] 取到的是一个table对象,他不是一个集合,不能通过中括号索引的方式进一步取行数据
而 table[0].rows[0] 后边为什么可以再跟个中括号呢?table[0].rows[0][1]
是因为table[0].rows[0] 取到的是具体某个datarow对象 而datarow对象整体就是一个集合。
后边跟个中括号是取这个集合的某个数据。比如table[0].rows[0][1] 就是取table[0].rows[0]中的第二个数据
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询