我有多個datagridviews(DGV),現在有多個bindingsources(BSs)和OleDbDataAdapters(ODA)的解決方案。回想一下DataTable或DataSet的DataAdapter
這是因爲我在選項卡控件中有多個DGV,並且我想在每個DGV中顯示來自數據庫的不同表格,並且能夠從DGV返回CRUD。
使用一臺BS和ODA,當我輸入每個標籤時,我能夠通過切換BS.DataMember
來顯示正確的DGV中的所有正確表格。這工作,因爲我只有一個DGV每個選項卡。
我遇到問題的地方是回到數據庫。我發現我發現的大多數例子都是爲每個表使用BS和ODA。這看起來很不雅觀,所以如果有辦法將DGV的DataSource
綁定到特定的BS.Datamember
,我很想知道它。
已經默認了多個BS和ODA,我可以從一個Sub上拉DGV,表名和BS來更新任何DGV上的髒行。我沒有想到的是,如果有辦法獲得最初用來填充表格的官方發展援助。在代碼:
Private Sub UniversalDGV_Handler_LeaveRow(sender As Object, e As DataGridViewCellEventArgs) _
Handles DGV1.RowLeave, DGV2.RowLeave, '...' DGVn.RowLeave
Dim DGV As DataGridView = CType(sender, DataGridView)
Dim bsPass As BindingSource = DGV.DataSource
Dim CurrentDBTableName As String = bsPass.DataMember
Dim da as OleDbDataAdapter = 'something I haven't figured out yet
UniversalDGV_RowLeave(sender, CurrentDBTableName, e, bsPass, da)
End Sub
現在在現實中,DGV人數最多的我已經是7,所以我只是做了匹配的列表,拉着ODA出來呀。但是,這似乎又非常粗糙。
有沒有辦法檢索它填充的表格中使用了哪一個DataAdapter
,在[BS或DGV]上使用了DataSet
?
來自BS或DGV的信息似乎有點牽強,因爲根據我的理解,他們沒有與ODA直接互動。我也在考慮可能將信息存儲在數據集中,因爲我使用了適配器,這至少會是一個更優雅的列表/表格。
@GordThompson對不起,昨晚沒有讓你知道,但我想通常在這裏如何解決它。 [你的例子](https://stackoverflow.com/questions/19369617/ds-tables-rows-add-makes-3-rows-when-called-once?answertab=active#tab-top)在一個DGV ,這只是我的工作,將其擴展到幾個。 –