[Code Source] Ajouter automatiquement des données dans une base MySQL avec Visual Stidio 2017 (VB.net)

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

 

 

Soyez le premier à commenter

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*