Получить позицию BindingSource на основе строки DataTable

У меня есть таблица данных, которая содержит строки таблицы базы данных. Эта таблица имеет первичный ключ, образованный двумя столбцами.

Компоненты назначаются следующим образом: datatable -> bindingsource -> datagridview. То, что я хочу, это искать конкретную строку (на основе первичного ключа), чтобы выбрать его в сетке. Я не могу использовать метод bindingsource.Find, потому что вы можете использовать только один столбец.

У меня есть доступ к данным, поэтому я вручную выполняю поиск по данным, но как я могу получить положение строки источника связывания на основе строки с данными? Или есть другой способ решить это?

Я использую Visual Studio 2005, VB.NET.

2 ответа

Я пытаюсь добавить ответ на этот двухлетний вопрос. Одним из способов решения этой проблемы является добавление этого кода после метода UpdateAll (из SaveItem_Click):

Me.YourDataSet.Tables("YourTable").Rows(YourBindingSource.Position).Item("YourColumn") = "YourNewValue"

Затем вызовите другой метод UpdateAll.

Ну, я заканчиваю итерацию, используя bindingsource.List и bindingsource.Item. Я не знал, но эти свойства содержат данные таблицы данных с применением фильтра и сортировки.

Dim value1 As String = "Juan"
Dim value2 As String = "Perez"
For i As Integer = 0 To bsData.Count - 1
    Dim row As DataRowView = bsData.Item(i)
    If row("Column1") = value1 AndAlso row("Column2") = value2 Then
        bsData.Position = i
        Return
    End If
Next
Другие вопросы по тегам