2012-01-07 7 views
0

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

ответ

1

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

Пример из статьи 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 

В вашем случае, если вы хотите передать массив объектов со значениями для поиска в ваших GroupID и CameraId полей.

+1

Спасибо, оценили. Один маленький вопрос, я полагаю, что я должен установить первичные ключи в том порядке, в котором они отображаются в определении таблицы, правильно? – mohsensajjadi