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.
Merci de m'aider
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
Partager