
Dans une base de données un certains nombre d’informations peuvent être ajouté automatiquement dans une base de donnée, car elles ne sont pas amenées à être modifiées par la suite…
Dans l’exemple ci-dessous je vais prendre les types de postes d’un PABX. Lors de l’extraction des données d’un PABX, le type de poste est une valeur numérique. On va donc utiliser une table « poste_type » pour convertir la valeur numérique en référence de poste.
Dans la table ci-dessous, la valeur 12 correspond au type de poste « analogique », la valeur 149 correspond au type de poste « 4029 » etc.

Déclaration des variables
Public Structure POSTE_Type
Dim num As Integer
Dim nom As String
Dim typ As String
Dim nb As Integer
Public Sub New(ByVal a As Integer, ByVal b As String, ByVal c As String, ByVal d As Integer)
num = a
nom = b
typ = c
nb = d
End Sub
End Structure
Public Tab_POSTESTYPE() As POSTE_Type
Public nb_POSTESTYPE As Integer
Variable de connexion à la base de données
BDD_R1C = "Server=" & My.Settings.MySQL_serveur &
";Database=" & My.Settings.MySQL_database &
";Uid=" & My.Settings.MySQL_identifiant &
";Pwd=" & My.Settings.MySQL_password & ";"
Lecture des types de poste présent dans la base de données
Public Sub SQL_lecture_poste_type()
Try
Dim table As String = "poste_type"
Dim requete As String = "SELECT * from " & table
Dim cnx As New MySqlConnection()
cnx.ConnectionString = BDD_R1C
cnx.Open()
Dim commande As New MySqlCommand(requete, cnx)
Dim monreader As MySqlDataReader = commande.ExecuteReader()
nb_POSTESTYPE = 0
ReDim Tab_POSTESTYPE(nb_POSTESTYPE)
While monreader.Read()
nb_POSTESTYPE += 1
ReDim Preserve Tab_POSTESTYPE(nb_POSTESTYPE)
Tab_POSTESTYPE(nb_POSTESTYPE).num = CInt(monreader("num").ToString)
Tab_POSTESTYPE(nb_POSTESTYPE).nom = monreader("nom").ToString
Tab_POSTESTYPE(nb_POSTESTYPE).typ = monreader("type").ToString
Tab_POSTESTYPE(nb_POSTESTYPE).nb = Cint(monreader("nb").ToString)
End While
cnx.Close()
b_lecture_fichier_postestype = True
SQL_Ajouter_POSTESTYPE_CONNUS()
Catch ex As Exception
End Try
End Sub
Ajouter les types de poste automatiquement dans la base de données
Public Sub SQL_Ajouter_POSTESTYPE_CONNUS()
Try
Dim table As String = "poste_type"
Dim requete As String = "SELECT * from " & table
Dim cnx As New MySqlConnection()
cnx.ConnectionString = BDD_R1C
cnx.Open()
Dim da As MySqlDataAdapter
Dim cmdBuilder As MySqlCommandBuilder
Dim CustomersDataSet As New DataSet()
da = New MySqlDataAdapter(requete, cnx)
cmdBuilder = New MySqlCommandBuilder(da)
da.Fill(CustomersDataSet, table)
Dim tab_POSTESTYPE_CONNUS As POSTE_Type() = New POSTE_Type() {
New POSTE_Type(12, "ana", "ana", 0),
New POSTE_Type(30, "4620", "ana", 0),
New POSTE_Type(74, "4011", "num", 0),
New POSTE_Type(75, "4012", "num", 0),
New POSTE_Type(76, "4023", "num", 0),
New POSTE_Type(77, "4034", "num", 0),
New POSTE_Type(115, "GAP", "dect", 0),
New POSTE_Type(122, "4004", "num", 0),
New POSTE_Type(123, "4010", "num", 0),
New POSTE_Type(124, "4020", "num", 0),
New POSTE_Type(125, "4035", "num", 0),
New POSTE_Type(138, "GAP +", "dect", 0),
New POSTE_Type(141, "UA-VIRTUEL", "num", 0),
New POSTE_Type(142, "PERIPH SIP", "ip", 0),
New POSTE_Type(149, "4029", "num", 0),
New POSTE_Type(148, "4018", "ip", 0),
New POSTE_Type(150, "4028", "ip", 0),
New POSTE_Type(151, "4039", "num", 0),
New POSTE_Type(152, "4038", "ip", 0),
New POSTE_Type(154, "4068", "ip", 0),
New POSTE_Type(159, "SIP EXT", "ip", 0)
}
Dim p_existe As Boolean = False
For i = 0 To tab_POSTESTYPE_CONNUS.Length - 1
p_existe = False
For j = 1 To nb_POSTESTYPE
If Tab_POSTESTYPE(j).num = tab_POSTESTYPE_CONNUS(i).num Then
p_existe = True
End If
Next
If p_existe = False Then
CustomersDataSet.Tables(table).Rows.Add("0", tab_POSTESTYPE_CONNUS(i).num,
tab_POSTESTYPE_CONNUS(i).nom,
tab_POSTESTYPE_CONNUS(i).typ,
tab_POSTESTYPE_CONNUS(i).nb)
End If
Next
da.Update(CustomersDataSet, table)
cnx.Close()
Catch ex As Exception
End Try
End Sub
Poster un Commentaire