[VB 2005]Probleme avec une listbox et DBNull
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 :
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
| 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
|
Merci de m'avoir porté un peu d'attention :D
PS : Veuillez m'excuser si un poste de ce type existe déjâ je n'ai pas été fichu de le trouver :cry: