我正在使用此代码:
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()
答案 0 :(得分:8)
完全像你写的那样:
dr(i)("column_name").ToString()
MSDN参考:
对于其他类型的强类型值(例如,Integer,您可以使用Field(Of T)
扩展名):
在你的情况下,
dr(i).Field(Of String)("column_name")