Ecrire dans un webbrowser l'option de la combobox choisie [Résolu]

ahorel 11 Messages postés mercredi 16 mars 2011Date d'inscription 19 avril 2011 Dernière intervention - 18 mars 2011 à 05:38 - Dernière réponse : ahorel 11 Messages postés mercredi 16 mars 2011Date d'inscription 19 avril 2011 Dernière intervention
- 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())
{

comboBox1.Items.Add( reader["Name"].ToString());
// ListViewItem lvi = new ListViewItem("Low Level - Host:" + reader.GetString(0) + " , User:" + reader.GetString(1));
//lvData.Items.Add(lvi);
}
reader.Close();
cmd.Dispose();
}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
textBox1.Text = comboBox1.SelectedValue.ToString()
}

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.

Merci d'avance
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 18 mars 2011 à 10:59
3
Merci
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é. -

Merci krimog 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de krimog
ahorel 11 Messages postés mercredi 16 mars 2011Date d'inscription 19 avril 2011 Dernière intervention - 18 mars 2011 à 05:49
0
Merci
Lorsque j'ai remplacé la derniere méthode par :

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show(comboBox1.SelectedText.ToString());

}

Ca ne montre rien dans la messagebox
Commenter la réponse de ahorel
cs_jopop 1540 Messages postés lundi 26 mai 2003Date d'inscription 1 août 2013 Dernière intervention - 18 mars 2011 à 09:40
0
Merci
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).
Commenter la réponse de cs_jopop
ahorel 11 Messages postés mercredi 16 mars 2011Date d'inscription 19 avril 2011 Dernière intervention - 19 mars 2011 à 11:49
0
Merci
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.
Commenter la réponse de ahorel

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.