Bonjour
J'ai trois soucis a vous présenter pour un programme qui a la base se veut être un outil de visualisation d'un parc info.

J'ai donc une base de données toute con avec Wamp et je souhaite faire trois choses :
1-Alimenter mes listbox avec le contenu d'une table via un select approprié.
2-Faire un update d'une table pour modifier un ligne de table (par ex : utilisateur)
3-Faire deux select dans deux tables différentes en récupérant l'index des deux lignes que j'ai sélectionné pour ensuite créer une ligne dans une troisième table. Ceci dans le but de faire une association poste/utilisateur.



1- Je sèche complètement sur comment faire en sorte de lire le resultat de mon select.

J'aimerais le stocker dans une variable et ensuite le lire ligne par ligne pour alimenter ma listbox.

Je pensais à :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim Mavariable as QuelqueChoseQuiPeutMarcher
 
nbLigne = ListesPostes.ListCount
compteur = 0
 
While compteur < nbLigne
Liste_Dates.RemoveItem (0)
compteur = compteur + 1
End While
 
Mavariable = ModuleBDDMysql.envoyerRequete ("SELECT `idutilisateur`, `Nom`  FROM  `utilisateur`)"
 
For ligne1 to lignemax
 
     ListBox.Additem(ligne1)
 
Next



Mais j'ai beau essayé de faire avec un datareader, un recordset ou autre que j'ai trouvé sur le net, impossible de le faire marcher et je ne comprend pas toujours ce que les gens balance comme code, sans explications aucunes


2- J'ai essayé ça mais il me cale une erreur dans mon module qui pourtant marche très bien avec un delete ou insert :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Private Sub Envoyer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Envoyer.Click
               ModuleBDDMysql.envoyerRequete("UPDATE `utilisateur` SET `Nom`= '" & SaisieNom.Text & "',`Prenom`=  '" & SaisiePrenom.Text & "',`Email`=  '" & SaisieMail.Text & "' WHERE  `utilisateur`.`Nom` = '" & NomUtilAModif.Text & "'")
    End Sub



3- Je voudrais donc mettre le résultat des deux select qui me renvoient chacun un index, que je voudrais stocker dans une table du nom "affecter" contenant deux colonnes : idPoste et idutilisateur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Private Sub Envoyer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Envoyer.Click
        ModuleBDDMysql.envoyerRequete("INSERT INTO poste(`Nom`,`Marque`,`DisqueDur`,`Memoire`)VALUES('" & SaisieNomPoste.Text & "','" & SaisieMarque.Text & "','" & SaisieCapacite.Text & "','" & SaisieMemoire.Text & "')")
 
        'ModuleBDDMysql.envoyerRequete("SELECT `idutilisateur` FROM  `utilisateur` WHERE  `Nom` LIKE  'NOM' AND  `Prenom` LIKE  'Cyril'")
        'ModuleBDDMysql.envoyerRequete("SELECT  `Idposte` FROM  `poste` WHERE  `Nom` LIKE  'test'")
        'ModuleBDDMysql.envoyerRequete("INSERT into affecter (idPoste, idUtilisateur) values (le resultat de mes deux select)
    End Sub



Pour tout les codes j'ai utilisé un module afin d'automatiser tout ça. La connexion se fait au démarrage du programme et la déconnexion en quittant.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Imports MySql.Data.MySqlClient
 
Module ModuleBDDMysql
 
    Dim connexion As MySqlConnection
    Dim commande As MySqlCommand
 
    Public Sub connecter()
        connexion = New MySqlConnection
        connexion.ConnectionString = "Server=localhost; Database=evolution; Uid=root; Pwd=;"
        connexion.Open()
    End Sub
 
    Public Sub envoyerRequete(ByVal commando As String)
        commande = connexion.CreateCommand
        commande.CommandText = commando
        commande.CommandTimeout = 10
        commande.ExecuteNonQuery()
    End Sub
 
    Public Sub deconnecter()
        connexion.Close()
        MsgBox("Connection BDD ended")
    End Sub
 
End Module
Merci de m'aider