我正在使用此代码:

Dim dr() As DataRow = datatable.Select("id='" & st)
For i = 0 To dr.GetUpperBound(0)
    result = dr(i)(2).ToString()
Next i


如何获得列名而不是dr(i)(2)的结果?因为如果在前面的数据表中添加一列,那么我得到的数据错误,我应该使用dr(i)(3)。因此,我想在将来不更改源代码的情况下克服此问题。类似于dr(i)("column_name").ToString()

最佳答案

就像您写的一样:

dr(i)("column_name").ToString()


MSDN参考:


DataRow.Item Property (String)


对于其他类型的强类型值(例如,Integer,可以使用Field(Of T)扩展名):


DataRowExtensions.Field(Of T) Method (DataRow, String)


就你而言

dr(i).Field(Of String)("column_name")

关于.net - 按列名称的数据行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22455957/

10-12 13:00