我正在使用此代码:
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/