使用列名从列中获取数据?

时间:2014-01-07 01:24:43

标签: c# .net datatable

我使用 -

迭代DataTable的行
DataTable dt = getDataTableFromSomeWhere();
DataRow row = null;
//for loop
row = dt.Rows[i];

如何使用列的名称获取第i行的列的值? 我可以使用dt.Columns [j]迭代列,但这不是我想要的。

2 个答案:

答案 0 :(得分:3)

只需使用indexer taking a string parameter

object value = row["ColumnName"];

编辑:假设已经以适当的类型提取了值,我通常只会转换为您想要的CLR类型:

int someIntegerValue = (int) row["ColumnName"];

有时您可能需要两个级别的投射(一个用于拆箱,另一个用于执行实际值转换),但这取决于您的需求。

我建议反对转换为字符串表示然后解析它,除非你真的没有其他选择。过多的字符串转换不仅会损害性能(通常不相关),而且会导致类型选择邋。。

答案 1 :(得分:0)

 string name = (string) row["ColumnName"];

 int i = Convert.ToInt32( row["ColumnName"]);

按名称引用的速度稍微慢一些,但更具可读性。