2010-08-30 111 views
4

我有一個包含數據庫表的行的數據表。該表有一個由2列組成的主鍵。基於DataTable行獲取BindingSource位置

組件分配的方式如下:datatable - > bindingsource - > datagridview。我想要的是搜索特定的行(基於主鍵)在網格中選擇它。我不能使用bindingsource.Find方法,因爲你只能使用一列。

我有權訪問數據表,因此我在數據表上手動搜索,但是如何根據數據錶行獲取綁定源行位置?或者有另一種方法來解決這個問題?

即時通訊使用Visual Studio 2005,VB.NET。

+0

在綁定源上創建擴展方法。作品像一個魅力 http://stackoverflow.com/questions/1767018/bindingsource-find-multiple-columns/1767100#comment9650142_1767100 – Martin 2011-11-07 14:45:43

+0

我認爲這傢伙有相同的要求: http://bytes.com/topic/visual - 基本網/答案/ 841559-的BindingSource - 查找 - 多主鍵 – 2010-08-30 16:20:27

回答

0

那麼,我最終迭代使用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 
0

我正在嘗試爲這個爲期2年的問題添加一個答案。爲了解決這一點的一種方式是通過UpdateAll方法(的SaveItem_Click)後追加此代碼:

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

然後調用另一個UpdateAll方法。