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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
|
Public Class Form1
Private wilayas As DataTable
Private dairas As DataTable
Private electeurs As DataTable
Private DataSetLot As DataSet
Private dairasBindingSource As BindingSource
Private electeursBindingSource As BindingSource
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
DataSetLot = CreateTables()
dairasBindingSource = New BindingSource
dairasBindingSource.DataSource = DataSetLot
dairasBindingSource.DataMember = "Dairas"
Me.cboDaira.DataSource = dairasBindingSource
Me.cboDaira.DisplayMember = "NomDaira"
Me.cboDaira.ValueMember = "IdDaira"
Me.LabelDairaNom.DataBindings.Add("Text", cboDaira, "Text", True, DataSourceUpdateMode.OnPropertyChanged)
electeursBindingSource = New BindingSource
electeursBindingSource.DataSource = DataSetLot.Tables("Electeurs")
DgvElecteurs.DataSource = electeursBindingSource
'saisie
Me.BoxId.Text = "new electeur"
Me.BoxNom.Text = "new nom"
Me.BoxPrenom.Text = "new prenom"
Me.LabelDairaId.DataBindings.Add("Text", cboDaira, "SelectedValue", True, DataSourceUpdateMode.OnPropertyChanged)
End Sub
Private Sub cboDaira_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cboDaira.SelectedIndexChanged
If cboDaira.SelectedIndex < 0 Then Return
Dim drv As DataRowView = CType(cboDaira.SelectedItem, DataRowView)
Dim parentRow As DataRow = GetWilayaOfDaira(drv.Row)
If parentRow IsNot Nothing Then
Me.LabelWilayaId.Text = parentRow("IdWilaya")
Me.LabelWilayaNom.Text = parentRow("NomWilaya")
End If
End Sub
Public Function GetWilayaOfDaira(ByVal rowChild As DataRow) As DataRow
Dim relWilayaDaira As DataRelation
relWilayaDaira = rowChild.Table.DataSet.Relations(0)
Return rowChild.GetParentRow(relWilayaDaira.RelationName)
End Function
Private Sub btnElecteur_Click(sender As System.Object, e As System.EventArgs) Handles btnAddElecteur.Click
Dim idElecteur As Integer = -1
If String.IsNullOrEmpty(BoxId.Text) Then Return
Try
idElecteur = Convert.ToInt32(BoxId.Text)
Catch ex As Exception
MessageBox.Show("enter a number")
BoxId.Select(0, BoxId.TextLength)
BoxId.Focus()
Return
End Try
If idElecteur < 0 Then
MessageBox.Show("enter a positive number")
BoxId.Select(0, BoxId.TextLength)
BoxId.Focus()
Return
End If
If String.IsNullOrEmpty(BoxNom.Text) Or
String.IsNullOrEmpty(BoxPrenom.Text) Then Return
Dim drv As DataRowView = Me.electeursBindingSource.AddNew()
drv.Row("Id") = idElecteur
drv.Row("Nom") = BoxNom.Text
drv.Row("Prenom") = BoxPrenom.Text
drv.Row("NumWilaya") = LabelWilayaId.Text
drv.Row("NumDaira") = LabelDairaId.Text
End Sub
Private Function CreateTables()
wilayas = CreateTableParente()
dairas = CreateTableEnfant()
electeurs = CreateTableElecteur()
Dim ds As New DataSet
ds.Tables.Add(wilayas)
ds.Tables.Add(dairas)
ds.Tables.Add(electeurs)
'Relation WilayaDaira
Dim parentColumn As DataColumn =
ds.Tables("Wilayas").Columns("IdWilaya")
Dim childColumn As DataColumn =
ds.Tables("Dairas").Columns("NumWilaya")
Dim relWilayaDaira As DataRelation = New DataRelation("WilayaDaira", parentColumn, childColumn, False)
ds.Relations.Add(relWilayaDaira)
Return ds
End Function
Private Function CreateTableParente() As DataTable
Dim dt As New DataTable("Wilayas")
dt.Columns.Add("IdWilaya", GetType(String))
dt.Columns.Add("NomWilaya", GetType(String))
dt.Rows.Add(New Object() {"01", "Adrar"})
dt.Rows.Add(New Object() {"02", "Chlef"})
dt.Rows.Add(New Object() {"03", "Laghouat"})
dt.Rows.Add(New Object() {"07", "Biskra"})
Return dt
End Function
Private Function CreateTableEnfant() As DataTable
Dim dt As New DataTable("Dairas")
dt.Columns.Add("IdDaira", GetType(String))
dt.Columns.Add("NomDaira", GetType(String))
dt.Columns.Add("NumWilaya", GetType(String))
'ajout dairas Adrar
dt.Rows.Add(New Object() {"0101", "Adrar", "01"})
dt.Rows.Add(New Object() {"0102", "Aoulef", "01"})
dt.Rows.Add(New Object() {"0107", "Reggane", "01"})
dt.Rows.Add(New Object() {"0108", "Timimoun", "01"})
'ajout dairas Chlef
dt.Rows.Add(New Object() {"0201", "Chlef", "02"})
dt.Rows.Add(New Object() {"0208", "Oued Fodda", "02"})
dt.Rows.Add(New Object() {"0212", "Tenes", "02"})
'ajout dairas Laghouat
dt.Rows.Add(New Object() {"0301", "Aflou", "03"})
dt.Rows.Add(New Object() {"0308", "Laghouat", "03"})
dt.Rows.Add(New Object() {"0310", "Sidi Makhlouf", "03"})
'ajout dairas Bikra
dt.Rows.Add(New Object() {"0701", "Biskra", "07"})
dt.Rows.Add(New Object() {"0703", "El Kantara", "07"})
dt.Rows.Add(New Object() {"0711", "Foughala", "07"})
Return dt
End Function
Private Function CreateTableElecteur() As DataTable
Dim dt As New DataTable("Electeurs")
dt.Columns.Add("Id", GetType(Integer))
dt.Columns.Add("Nom", GetType(String))
dt.Columns.Add("Prenom", GetType(String))
dt.Columns.Add("NumWilaya", GetType(String))
dt.Columns.Add("NumDaira", GetType(String))
Return dt
End Function
End Class |