我正在使用此代码:
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属性(字符串)
对于其他类型的强类型值(例如,Integer,您可以使用Field(Of T)
扩展名):
DataRowExtensions.Field(Of T)方法(DataRow,String)
在你的情况下,
dr(i).Field(Of String)("column_name")