Ecrire dans un webbrowser l'option de la combobox choisie

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

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

4 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
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é. -
3
ahorel Messages postés 11 Date d'inscription mercredi 16 mars 2011 Statut Membre Dernière intervention 19 avril 2011
18 mars 2011 à 05:49
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
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
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).
0
ahorel Messages postés 11 Date d'inscription mercredi 16 mars 2011 Statut Membre Dernière intervention 19 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.
0
Rejoignez-nous