Как использовать 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.