cs_Brydjy
Messages postés19Date d'inscriptionlundi 21 janvier 2008StatutMembreDernière intervention21 juin 2009
-
20 juin 2009 à 19:39
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 2020
-
21 juin 2009 à 13:04
Bonjour à tous,
Je fais appel à vous, car j'ai un petit problème avec mon projet encours.
J'ai tenté de renseigner quelques infos à la main dans ma base de données Access, des infos qui alimenterons des listes déroulantes.
Sauf que, quand je tente d'afficher ces infos dans une des listes déroulantes, et bien il me renvoie un message d'erreur, celui de mon "Try...catch"
Je vous met mon code, au cas où quelqu'un comprendrais pourquoi.
Selon moi, et d'après ce que j'ai compris, Visual Studio est incapable de trouver une quelconque données dans ma bdd Access...
C'est très énervant...
Private Sub CmbCtr_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbCtr.SelectedIndexChanged
Try
command = New OleDbCommand("select * from T_Contrats", Cnxtemps)
' Ouvrir la connexion
Cnxtemps.Open()
dr = command.ExecuteReader()
' vider le ComboBox
CmbCtr.Items.Clear()
If dr.HasRows Then
'Tant que le DataReader a une ligne d'enregistrement
While dr.Read
' Ajouter la donnée au ComboBox
CmbCtr.Items.Add(dr.GetValue(0))
End While
Else
MessageBox.Show("Pas de résultats pour la donnée", "Infos", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
If Not (dr Is Nothing) Then dr.Close()
If Not (con Is Nothing) Then con.Close()
End Try
End Sub
Merci par avance de votre aide.
A voir également:
Aucune données visible depuis VS2005 dans ma bdd alors que données présentes
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 21 juin 2009 à 11:15
Regarde les Propriétés DisplayMember et ValueMember, ce que tu as fais, c'est créer un contrôle lié au données, en gros, le code que tu as saisis plus haut se fait automatiquement, (Ajout à la propriété DataSource), c'est aussi valable pour plusieurs contrôles.
ValueMember sur le champ qui te sert d'ID ou sur ta clé primaire, puis sert toi de la propriété SelectedValue pour retrouver celui-ci.
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 21 juin 2009 à 12:10
Dans la propriété DisplayMember tu dois renseigner le nom de la colonne qui affichera les valeurs dans le combo, et dans ValueMember, le nom de la colonne dont les valeurs serront retournés par la sélection dans le combo (SelectedValue).
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
cs_Brydjy
Messages postés19Date d'inscriptionlundi 21 janvier 2008StatutMembreDernière intervention21 juin 2009 21 juin 2009 à 10:44
Bonjour et merci,
Le message d'erreur est celui du "Else" : "Pas de résultats pour la donnée"
Sinon ma chaine de connexion est la suivante :
Public Cnxtemps As OleDb.OleDbConnection
Public StrChaine As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\base_appli.mdb;Persist Security Info=False"
Sinon, j'ai fait un truc tout con, j'ai fait glisser ma table dans ma combobox et ça fonctionne, par contre je voulais pas récupérer le libellé mais le numéro de ma table, ça j'ai pas trop vue où fallait aller pour le modifier.
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Brydjy
Messages postés19Date d'inscriptionlundi 21 janvier 2008StatutMembreDernière intervention21 juin 2009 21 juin 2009 à 11:45
Euh...
J'ai pas tout compris, mais je te promet que je vais essayer.
J'avais aussi essayer ce code, mais ça n'affichais rien !
sql = "select * from T_Contrats"
DtA = New OleDbDataAdapter(sql, Cnxtemps)
Cnxtemps.Open()
Bon merci, pour votre aide. C'est vraiment mal foutu ces cours à deux balles.
C'est un projet que je dois rendre pour la semaine prochaine, et le type ils nous a juste expliqué rapidement comment afficher une donnée à l'aide de l'objet BindingSource.
Franchement, il a même pas parlé de modification, suppression, affichage dans autre chose que dans un textBox...
en bref, je suis dans la merde, j'ose à peine imaginer le reste de mes collègues.
Je fait pas mal de programmation, mais ça n'a vraiment rien avoir avec du VB.
(PHP et JAVA) aussi bien niveau grammaire que sur la forme. ça me déçois.
cs_Brydjy
Messages postés19Date d'inscriptionlundi 21 janvier 2008StatutMembreDernière intervention21 juin 2009 21 juin 2009 à 11:52
Bon, en faite, ayé, j'ai réussi à afficher les données, c'est parce que je n'instanciais pas mon "DtS" donc j'ai rajouté une ligne qui le fait.
a présent, quelqu'un peut-il me dire comment je fait pour afficher dans ma Combobox le libellé (nom du champ) mais enregistré dans ma bdd le numéro correspondant à ce même libellé ?
ça serait vraiment gentil, car là du coup, vue que je n'y arrive pas, j'affiche le libellé, mais j'ai changé le type dans ma table, j'attends plus un entier comme je le souhaitais, mais un string. et c'est dommage, car pour le trie c'était mieux d'avoir des numéros, comme ça je pouvait faire des conditions sur "inférieur à" et "supèrieur à".