如何从列名中获取字段值

时间:2014-01-09 14:54:51

标签: c# vb.net datatable

在从vb.net转移到c#的过程中,我使用datatable遇到了这个问题。所以,在这里你看到我想通过引用列标题的名称从行#1获取字段的值:

在vb.net中,我能够做到这一点:

Dim mydatatable as As New System.Data.DataTable
Dim myvar as string
myvar = mydatatable.Rows(1).Item("mycategory")

但C#中没有.item()。但是,有DataArray[],但它只接受整数。

something.InnerText = thisdata.Rows[1].ItemArray[1].ToString();

我是否正确地认为我必须遍历所有列标题以匹配列的名称,然后获取它的索引?或者有没有像我在vb.net中那样工作的方式?

2 个答案:

答案 0 :(得分:2)

Rows[1]返回第二行,即DataRow类型。 Row还有几个索引器,它们接受column nameDataColumn objectcolumn index等等:

something.InnerText = thisdata.Rows[1]["mycategory"].ToString();

基本上,上面的行等同于以下内容,其中row显式存储在局部变量中:

DataRow row = thisdata.Rows[1];
something.InnerText = row["mycategory"].ToString();

但是在这里完全清楚会发生什么。

答案 1 :(得分:0)

如果您已命名列,则可以在括号内引用这些列。

myvar = mydatatable.Rows[1]["mycategory"]

您也可以使用索引。

myvar = mydatatable.Rows[1][1]