1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim bsParent As New BindingSource
Dim bsChild1 As New BindingSource
Dim bsChild2 As New BindingSource
Dim BindingNavigator1 As New BindingNavigator(True)
Dim parentCol As DataColumn
Dim childCol As DataColumn
'1/ Lier le Navigator au 1er BindingSource
myNavigator.BindingSource = bsParent
'2/ Fill du DataSet qui est fait en general par une function
' specifique de chargement des donnees
Dim tonDtaset As New DataSet
Dim da As New OleDbDataAdapter
da.Fill(tonDtaset, "TableParent")
da.Fill(tonDtaset, "TableChild1")
da.Fill(tonDtaset, "TableChild2")
'les relations dans cet exemple sont en cascade
'TableParent => lie à TableChild1
'TableChild1 => lie à TableChild2
'Relation1
parentCol = tonDtaset.Tables("TableParent").Columns("champCle1")
childCol = tonDtaset.Tables("TableChild1").Columns("champCle1")
Dim relat1 As New DataRelation("Relat1", parentCol, childCol)
'Relation2
parentCol = ClientCommandesProductSet.Tables("TableChild1").Columns("champCle2")
childCol = ClientCommandesProductSet.Tables("TableChild2").Columns("champCle2")
Dim relat2 As New DataRelation("Relat2", parentCol, childCol)
'ASTUCE ....lier bsParent à dataset et table parent !!!!
bsParent.DataSource = tonDtaset
bindingSource1.DataMember = "TableParent"
' => bsChild1 se connecte sur bsParent
bsChild1.DataSource = bindingSource1
bsChild1.DataMember = "Relat1"
' => bsChild2 se connecte sur bsChild1
bsChild2.DataSource = bindingSource2
bsChild2.DataMember = "Relat2"
'4/ =>Les dgv se connecte chacun sur son bindingsource
DataGridView1.DataSource = bindingSource1
DataGridView2.DataSource = bindingSource2
DataGridView3.DataSource = bindingSource3
'5/ =>Suivent les textbox chacun sur son bindingsource
'pour table parent
TextBox1.DataBindings.Add("Text", bindingSource1, "champCle1", True, DataSourceUpdateMode.OnPropertyChanged)
TextBox2.DataBindings.Add("Text", bindingSource1, "champ2", True, DataSourceUpdateMode.OnPropertyChanged)
' =>pour table child1
TextBox3.DataBindings.Add("Text", bindingSource2, "champCle2", True, DataSourceUpdateMode.OnPropertyChanged)
TextBox4.DataBindings.Add("Text", bindingSource2, "champ2", True, DataSourceUpdateMode.OnPropertyChanged)
TextBox5.DataBindings.Add("Text", bindingSource2, "champ3", True, DataSourceUpdateMode.OnPropertyChanged)
End Sub |
Partager