Подтвердить что ты не робот

DataTable: как получить значение элемента с именем строки и именем столбца? (VB)

У меня есть простой DataTable, где один из столбцов содержит уникальные значения. Например:

ColumnName1   ColumnName2
value1        35
value2        44
value3        10

Поскольку я знаю, что значения 1, 2 и 3 всегда будут отличаться друг от друга, я хотел бы получить значение этой таблицы только с использованием ColumnName2 и одного из значений ColumnName1. Это будет, например, следующее:

searchedValue = DataTable.Rows("value3").Item("ColumnName2) 
'result would be 10

Я безуспешно пробовал следующие примеры:

4b9b3361

Ответ 1

Dim rows() AS DataRow = DataTable.Select("ColumnName1 = 'value3'")
If rows.Count > 0 Then
     searchedValue = rows(0).Item("ColumnName2") 
End If

С FirstOrDefault:

Dim row AS DataRow = DataTable.Select("ColumnName1 = 'value3'").FirstOrDefault()
If Not row Is Nothing Then
     searchedValue = row.Item("ColumnName2") 
End If

В С#:

var row = DataTable.Select("ColumnName1 = 'value3'").FirstOrDefault();
if (row != null)
     searchedValue = row["ColumnName2"];

Ответ 2

'Create a class to hold the pair...

        Public Class ColumnValue
            Public ColumnName As String
            Public ColumnValue As New Object
        End Class

    'Build the pair...

        For Each row In [YourDataTable].Rows

              For Each item As DataColumn In row.Table.Columns
                Dim rowValue As New ColumnValue
                rowValue.ColumnName = item.Caption
                rowValue.ColumnValue = row.item(item.Ordinal)
                RowValues.Add(rowValue)
                rowValue = Nothing
              Next

        ' Now you can grab the value by the column name...

        Dim results = (From p In RowValues Where p.ColumnName = "MyColumn" Select  p.ColumnValue).FirstOrDefault    

        Next

Ответ 3

Try:

DataTable.Rows[RowNo].ItemArray[columnIndex].ToString()

(Это код С#. Измените это на эквивалент VB)