nico8001
Messages postés92Date d'inscriptionmercredi 9 juin 2010StatutMembreDernière intervention30 juin 2010
-
14 juin 2010 à 15:32
nico8001
Messages postés92Date d'inscriptionmercredi 9 juin 2010StatutMembreDernière intervention30 juin 2010
-
15 juin 2010 à 08:25
Bonjour à tous ,
donc je fais un programme sur visual basic 2008 et j'ai une base de données access 2000
dans mon application quand je clique sur un bouton je voudrais ,à l'aide d'un SELECT, affiché les resulats du select dans une listbox
Probleme ma listbox reste toujours vide ....( et je n'ai jamais de message d'erreur)
Mon code :
Dim MyConnection As New System.Data.OleDb.OleDbConnection()
Dim Affiche As OleDb.OleDbCommand = MyConnection.CreateCommand()
Dim TA As New OleDb.OleDbDataAdapter(Affiche)
Dim Machines As New DataTable
MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\...\Debug\BaseDeDonnées.mdb"
MyConnection.Open()
Affiche.CommandText = "SELECT NomMachine FROM Machines"
Affiche.ExecuteNonQuery()
Try
TA.Fill(Machines)
With LB_ListMachines
.ValueMember = "NomMachine"
.DisplayMember = "NomMachine"
.DataSource = Machines
End With
Catch ex As Exception
MessageBox.Show("Impossible d'établir la connexion à la base !! " & ex.Message)
End Try
MyConnection.Close()
Dans ma base de données , j'ai 1 seule table "Machines" avec 4 champs ( N°Machine , NomMachine , AdresseiP , Secteur )
J'ai essayer de mettre un point d'arret sur la ligne "end with"
je pointe sur ma connexion sa marche nikel
sur la requete , sa s'affiche bien
.valuemembers , jai bien NomMachine
.displaymembers , jai bien NomMachine
et sur .datasource , jai system.data.datatable
et quand je regarde dans le datatable vizualizer , je vois bien ma liste de Nom de machines qui est dans ma base access....
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 15 juin 2010 à 00:44
Re,
Eoute, je t'ai donné un code fonctionnel :
Dim oleDbConnex As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=EmplacemenntDeTaBase.mdb")
Dim oleCmd As New OleDb.OleDbCommand("SELECT NomMachine FROM Machines", oleDbConnex)
Try
Dim TA As New OleDb.OleDbDataAdapter(oleCmd)
Dim DT As New DataTable
TA.Fill(DT)
With MaListBox
.ValueMember = "NomMachine"
.DisplayMember = "NomMachine"
.DataSource = DT
End With
Catch ex As Exception
MessageBox.Show("Impossible d'établir la connexion à la base !! " & ex.Message)
End Try
J'ai testé ce code en créant une base identique à la tienne, 4 colonnes de même nom, j'ai rentré des enregistrements et ca fonctionne, donc le problème c'est que tu dois te planter quelque part dans le chemin d'accès à la base et la base que tu renseigne est vide.
Si tu avais un autre problème tu aurais un message d'erreur.
Quand à ton code plus haut, il fonctionne aussi mais n'est pas optimisé tu ferme ta connexion sans savoir si elle sera ouverte et tu ne place pas le d'ouverture dans le Try.
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
nico8001
Messages postés92Date d'inscriptionmercredi 9 juin 2010StatutMembreDernière intervention30 juin 2010 15 juin 2010 à 08:25
ah ecoute bha je refais carrément une nouvelle application en mettant juste une listbox et un bouton
j'ai fait une nouvelle base
et sa marchee Lol (je me sens un peu c*n)
jdois avoir un petit truc qui fait ch**r le monde Lol parce que javais recopié tel quel le code que tu mavais passer ...
enfin bon sa marche
en tout cas un grand merci à toi de m'avoir consacrer du temps .
Encore MERCI
a bientot ;)