Bonjour à tous,
Tout d'abord je tiens à préciser que je suis débutant en vb, alors mon problème va peut être vous semblait bête...
Avant d'exposer ce problème, je précise que je travaille sous visual studio 2005, et j'utilise une base de donnée sous Access.
Alors mon problème est tout simple, je veux récupérer les donnée d'une table ayant pour condition le texte sélectionné dans ma listbox.
Ma requête est donc la suivante :
choix = ListBox1.Text
sql = "select * from Personne where Nom='" & choix & "';"
Il me semble que cela est correct vu que si je fais un messagebox.show(choix) il m'affiche bien le texte qui a été choisi dans la listbox, et si je fais un messagebox.show(sql), elle aussi semble correcte.
Je précise que l'erreur que j'obtiens est : "La conversion du type 'DBNull' en type 'String' n'est pas valide. Mais ma requête ne retourne pas une valeur nulle."
Enfin je débute et je n'ai certainement pas encore tout compris. Je précise que cette instruction est placé sur l'évenement clic dans la listbox. Je vous joins, le code sur cet évenement. Merci de me porter votre aide.
Voici le code :
Merci de m'avoir porté un peu d'attention
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 Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.Click Dim choix As String choix = ListBox1.Text cnxstr = "provider = microsoft.jet.oledb.4.0 ; data source = " & Application.StartupPath & "\Agenda.mdb;" cnx = New OleDbConnection cnx.ConnectionString = cnxstr cnx.Open() 'Création de la requête sql sql = "select * FROM Personne where Nom='" & choix& "';" 'Création de la commande et on l'instancie (sql) cmd = New OleDbCommand(sql) 'Création du data-adapter (dta) et on l'instancie (cmd) dta = New OleDbDataAdapter(cmd) 'On instancie la commande (cmd) à la connection (cnx) cmd.Connection() = cnx 'On charge le dataset (dts) grace à la propriété fill du data-adapter (dta) dta.Fill(dts, "Personne") 'On charge la datatable (dtt) grace à la propriété tables du dataset (dts) dtt = dts.Tables("Personne") Me.TextBox1.Text = dtt.Rows(0).Item("Nom") Me.TextBox2.Text = dtt.Rows(0).Item("Prenom") Me.TextBox3.Text = dtt.Rows(0).Item("DateNaissance") End Sub
PS : Veuillez m'excuser si un poste de ce type existe déjâ je n'ai pas été fichu de le trouver![]()
Partager