我有多个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 ,这只是我的工作,将其扩展到几个。 –