c#中关于datatable的datarow和datacolumn区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中关于datatable的datarow和datacolumn区别相关的知识,希望对你有一定的参考价值。
foreach(datarow row in datatable.rows )
row["colName"]="123";可以这样写
但是这样写为什么就不行呢?
foreach(datacolumn col in datatable.columns )
col["rowName"]="123"
1、DataTable:表示内存中数据的一个表。
公共属性
Columns 获取属于该表的列的集合。
DataSet 获取此表所属的 DataSet。
DefaultView 获取可能包括筛选视图或游标位置的表的自定义视图。
PrimaryKey 获取或设置充当数据表主键的列的数组。
Rows 获取属于该表的行的集合。
TableName 获取或设置 DataTable 的名称。
2、DataRow:表示 DataTable 中的一行数据
row["index"]
3、DataColumn:表示 DataTable 中列的架构。 参考技术A 好像你这样写不对哦,必须是循环行,然后循环获得每一项的值:
foreach(datarow row in datatable.rows )
row["colName"]="123";
你row["colName"]是获得这个值,而不是赋值给他
你应该声明个变量:string name=row["colName"].totring();
应该这样写吧 参考技术B 查找数据库表单的顺序是先行后列
foreach(datarow row in datatable.rows )
表示在表中逐行查询
row["colName"]="123";
表示查找到行后把123传值给列colname
col["rowName"]="123"//行没有名称 参考技术C 先找到行,再找其中第几项。
行是没有名称的,所以第二个方法不行。追问
也就是说 col[0] 这样是不能表示该列第一行的值了?
追答是的。其他数据库也是相同的原理,按行存储。
你看CELL[Row][Col] ,其实CELL[Row]就是一个行,相当于数组。
你第一个foreach是循环数据表中的所有行中字段名为colName的数据列,
你第二个foreach是循环数据表中的所有列中数据行为rowName的,没有这样的数据行所有这个循环是错的
以上是关于c#中关于datatable的datarow和datacolumn区别的主要内容,如果未能解决你的问题,请参考以下文章
C# datatable增加行(datarow)数据为另一个datatable中某行
通过DataTable c#中的itemArray值查找DataRow