Problème de lien VB Basic 2008 Express ==> Sql
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:
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:
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:
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:
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