ahorel
Messages postés11Date d'inscriptionmercredi 16 mars 2011StatutMembreDernière intervention19 avril 2011
-
18 mars 2011 à 05:38
ahorel
Messages postés11Date d'inscriptionmercredi 16 mars 2011StatutMembreDernière intervention19 avril 2011
-
19 mars 2011 à 11:49
Bonjour,
J'ai crée une base de données qui permet de diffuser dans une combobox des champ string.
Je voudrais que le choix de l'utilisateur dans la combobox soit diffusé dans un webbrowser.
Voici le code :
MySQLConnection conn = new MySQLConnection(new MySQLConnectionString("localhost", "basetest", "root", "").AsString);
MessageBox.Show("Connecting to database");
try
{
conn.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
// Typical low level reading
MySQLCommand cmd = new MySQLCommand("select * from tabletest", conn);
MySQLDataReader reader = cmd.ExecuteReaderEx();
while (reader.Read())
{
Malheureusement la compilation du programme me retourne une erreur :La référence d'objet(comboBox1.SelectedValue) n'est pas définie à une instance d'un objet.
Il s'agierait de convertir un objet en string ce que j'ai essayé de faire soit avec cette méthode soit avec le cast (string) avant comboBox1.SelectedValue mais rien n'est diffusé dans le corps du webbrowser.
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 18 mars 2011 à 10:59
Salut
Alors d'abord, cette erreur ("La référence d'objet n'est pas définie à une instance d'un objet.") n'apparaît pas à la compilation mais au runtime (quand tu lances ton programme).
L'exception est explicite (à condition de bien connaître les termes). La référence d'objet (toutes les variables que tu manipules dont le type est une classe et non une structure sont des références d'objet) n'est pas définie (n'a pas pour valeur) à une instance d'un objet (un objet créé en mémoire).
Donc tu utilises une variable qui ne référence pas un objet en mémoire, c'est-à-dire que cette variable a une valeur null.
Il s'agit d'un erreur très banale, qui est due à l'accès à un membre d'un objet sur une référence null.
Pour simplifier, tu fais quelqueChoseQuiEstNull.AutreChose
En plus, le débugger indique exactement où se trouve l'erreur : comboBox1.SelectedValue. Donc comboBox1.SelectedValue est null, tu ne peux donc pas accéder à ses membres (Propriétés, champs, méthodes et événements), donc pas à la méthode ToString();
Essaie plutôt d'accéder à la propriété Text de ta comboBox. Cette propriété contient toujours le texte ecrit dans la comboBox, que tu l'aies rentré à la main ou sélectionné une valeur dans la comboBox.
comboBox1.Text.ToString();
Krimog : while (!(succeed = try())) ; - Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 18 mars 2011 à 09:40
Salut,
Ta ComboBox est bien remplie à l'exécution ?
Que vient faire un WebBrowser dans le schmilblik (aucune réf dans le code) ?
Forces-tu un SelectedIndex sur ta ComboBox (dans le constructeur de ta Form par exemple) ?
Déjà tu pourrais tester que comboBox1.SelectedValue est différent de null avant de faire appel à sa ToString().
Deux petites remarques :
- l'appel à cmd.Dispose() n'est pas utile, le garbage collector s'en chargera à la mort de la dernière référence à cmd,
- il manque un point-virgule dans ton event (mais ça c'est sûrement un faute de frappe).
ahorel
Messages postés11Date d'inscriptionmercredi 16 mars 2011StatutMembreDernière intervention19 avril 2011 19 mars 2011 à 11:49
Bonjour,
Merci a tous pour vos reponses, vous avez raison le selectedValue est a null je ne peux l utiliser. Je men suis sorti en utilisant selectedItem qui contient la valeur souhaitee.