【问题标题】:Get the BindingSource position based on DataTable row根据 DataTable 行获取 BindingSource 位置
【发布时间】:2011-04-05 20:30:09
【问题描述】:
我有一个包含数据库表行的数据表。此表有一个由 2 列组成的主键。
组件是这样分配的:datatable -> bindingsource -> datagridview。我想要的是搜索特定行(基于主键)以在网格上选择它。我不能使用 bindingsource.Find 方法,因为您只能使用一列。
我可以访问数据表,所以我在数据表上手动搜索,但是如何根据数据表行获取绑定源行位置?还是有其他方法可以解决这个问题?
我使用 Visual Studio 2005,VB.NET。
【问题讨论】:
标签:
vb.net
search
datatable
bindingsource
【解决方案1】:
我正在尝试为这个 2 年前的问题添加答案。解决此问题的一种方法是在 UpdateAll 方法(SaveItem_Click)之后附加此代码:
Me.YourDataSet.Tables("YourTable").Rows(YourBindingSource.Position).Item("YourColumn") = "YourNewValue"
然后调用另一个 UpdateAll 方法。
【解决方案2】:
好吧,我最终使用 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