如何在 C# 中获取数据表中列的值
本文关键字:数据表 获取 | 更新日期: 2023-09-27 18:30:43
我有一个结构有点像这样的数据表,
Week_Number Col_A Col_B Col_C Col_D Col_E
----------------------------------------------
1 10 20 30 40 50
2 20 30 40 50 60
3 30 40 50 60 70
4 40 50 60 70 80
5 50 60 70 80 90
这是我在 c# 中返回数据表值的代码。
foreach (DataRow dr in dt.Rows)
{
foreach (DataColumn dc in dr.Table.Columns)
{
lst.Add(dr[dc].ToString());
}
}
但它按行返回值(例如,Row[0] - 1,10,20,30,40,50,Row[1],..),而我想按列获取值(例如,Col[0] - 1,2,3,4,5,Col[1],...)
任何帮助将不胜感激。
谢谢。
只需更改循环的顺序,您的外循环应该在Columns
,内部循环应该在以下行上:
foreach (DataColumn dc in dt.Columns)
{
foreach (DataRow dr in dt.Rows)
{
lst.Add(dr[dc].ToString());
}
}
您最终将得到一个列表,其中包含从第一列开始的所有值,然后
您实际上想要来自 DataRow 对象内列的数据:
dr.field<int>("Week_Number");
dr["Week_Number"].ToString();
您可以获得单个列的值,如下所示:
var valueOfColumn = dtTable.Rows[rowIndex][ColumnIndex];
如果你想要所有列,你可以通过循环来实现:
foreach (DataRow dtRow in dtTable.Rows)
{
foreach(DataColumn dc in dtTable.Columns)
{
var field1 = dtRow[dc].ToString();
}
}