Получить позицию 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