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]就是一个行,相当于数组。

本回答被提问者采纳
参考技术D DataTable是数据表,DataRow是数据行,DataColumn是数据列(也是字段)。
你第一个foreach是循环数据表中的所有行中字段名为colName的数据列,
你第二个foreach是循环数据表中的所有列中数据行为rowName的,没有这样的数据行所有这个循环是错的

以上是关于c#中关于datatable的datarow和datacolumn区别的主要内容,如果未能解决你的问题,请参考以下文章

c# datarow[] 转换成 datatable

C# datatable增加行(datarow)数据为另一个datatable中某行

通过DataTable c#中的itemArray值查找DataRow

C#中关于SqlDataAdapter的Update(dataTable)方法

C# DataRow

c# datatable 相邻数据去重?