Как использовать TypedDataTable.Rows.Find(ключ как объект), чтобы найти строку, которая имеет составной ключ?

У меня есть TypedDataTable называется CamerasDT который имеет составной первичный ключ GroupId а также CameraId, Я хочу использовать TypedDataTable.Rows.Find(key as object) вернуть определенную строку GroupId а также CameraId, Кажется, я не могу найти способ отправить первичный ключ в функцию поиска. Любая помощь приветствуется.

1 ответ

Решение

Используйте одну из перегрузок для метода Find для передачи массива Objects, который соответствует значениям первичного ключа, которые вы ищете.

Пример из статьи MSDN, на которую я ссылаюсь:

В следующем примере значения массива используются для поиска определенной строки в коллекции объектов DataRow. Метод предполагает, что существует DataTable с тремя столбцами первичного ключа. После создания массива значений код использует метод Find с массивом, чтобы получить конкретный объект, который вы хотите.

 Private Sub FindInMultiPKey(ByVal table As DataTable)
    ' Create an array for the key values to find.
    Dim findTheseVals(2) As Object

    ' Set the values of the keys to find.
    findTheseVals(0) = "John"
    findTheseVals(1) = "Smith"
    findTheseVals(2) = "5 Main St."

    Dim foundRow As DataRow = table.Rows.Find(findTheseVals)
    ' Display column 1 of the found row.
    If Not (foundRow Is Nothing) Then
        Console.WriteLine(foundRow(1).ToString())
    End If
End Sub

В вашем случае вы бы передали массив Object со значениями для поиска в полях GroupId и CameraId.

Другие вопросы по тегам