Se connecter / S'enregistrer
Votre question

problem nullReferenceException datagridview

Tags :
  • DataGridView
  • NullReferenceException
  • Programmation
Dernière réponse : dans Programmation
9 Mars 2012 08:12:06

bonjour,
j'ai 2 datagridview que je remplie a partir d'un dataset
et les 2 datagridview sont deepandant : selon la ligne selectionné dans le premier datagridview on remplie le deuxieme de la base
et selon la ligne selectionné dans la 2 datagridview je remplie un richtextbox
mon probleme c'est lorsque je selectionne une ligne dans le premier datagridview et qu'i na pas d'enregistrement correspondant qui vont etre mis dans le deuscieme alors
il me genere l'exception :
  1. nullReferenceException : La référence d'objet n'est pas définie à une instance d'un objet


et voila la methodde ou il y a l'erreur
  1. private void dataGridView3_SelectionChanged(object sender, EventArgs e)
  2. {
  3. if (dataGridView3.DataSource != null && dataGridView3.SelectedRows.Count >0)
  4. {
  5. // cette methode pour charger le richtextbox
  6. loadContatcsDescription(nom_societe,
  7. dataGridView3.SelectedRows[0].Cells["Nom_TYPECONTACT"].Value.ToString(), //cette ligne genere l'erreur
  8. dataGridView3.SelectedRows[0].Cells["DATE_CONTACT"].Value.ToString()); //et celle_ci : ce sont les colonnes de la 2 datagridview
  9. }
  10.  
  11.  
  12. }

et voila la methode avec laquelle je charge la 2 datagridview :
  1. public void loadContatcs(string nom_societe)
  2. {
  3. dataGridView3.DataSource = null ;
  4. CnxAcces conn = new CnxAcces();
  5. DataSet a = conn.getDataset("select DATE_CONTACT, Nom_TYPECONTACT from CONTACTSOC,TypeCONTACT where CONTACTSOC.CODE_TYPECONTACT=TypeCONTACT.CODE_TYPECONTACT and CONTACTSOC.CODE_SOCIETE = (select CODE_SOCIETE from societe where NOM_SOCIETE ='" + nom_societe + "')");
  6. if (a.Tables.Count > 0)
  7. {
  8. dataGridView3.DataSource = a.Tables[0];
  9. dataGridView3.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
  10. dataGridView3.Rows[0].Selected = true;
  11. dataGridView3.MultiSelect = false;
  12. }
  13.  
  14. }

et voila la methode pour charger le richtextbox :
  1. public void loadContatcsDescription(string nom_societe, string nom_type_contact, string date_contact)
  2. {
  3. CnxAcces conn = new CnxAcces();
  4. //DataSet a = conn.getDataset("select CODE_TYPECONTACT from TypeCONTACT where Nom_TYPECONTACT ='" + nom_type_contact + "'");
  5. DataSet a = conn.getDataset("select DESCRIPTION from CONTACTSOC where CONTACTSOC.CODE_TYPECONTACT= (select CODE_TYPECONTACT from TypeCONTACT where Nom_TYPECONTACT ='" + nom_type_contact + "') and CONTACTSOC.DATE_CONTACT = '" + date_contact + "' and CONTACTSOC.CODE_SOCIETE = (select CODE_SOCIETE from societe where NOM_SOCIETE ='" + nom_societe + "')");
  6. string tmp = dataGridView3.SelectedRows[0].Cells["Nom_TYPECONTACT"].Value.ToString();
  7. System.Console.WriteLine("suisje ");
  8. //richTextBox1.Text = "jranran" + dataGridView3[1, 0].Value.ToString();
  9. if(a.Tables[0].Rows.Count != 0)
  10. richTextBox1.Text = a.Tables[0].Rows[0].ItemArray[0].ToString();
  11. }


merci d'avance

Autres pages sur : problem nullreferenceexception datagridview

a c 232 L Programmation
9 Mars 2012 09:17:15

Salut,

Met un breakpoint dans ta méthode dataGridView3_SelectionChanged, et débug au pas à pas (F10).
Et regarde à quel endroit exactement il y a une null exception.

Est-ce que c'est la colonne, et dans ce cas y'a un problème de nom de colonne :
  1. dataGridView3.SelectedRows[0].Cells["Nom_TYPECONTACT"]

ou est-ce que c'est sa Value, et dans ce cas, la valeur est null, du coup un ToString() dessus ne fonctionne pas :
  1. dataGridView3.SelectedRows[0].Cells["Nom_TYPECONTACT"].Value
9 Mars 2012 14:30:56

le nom de la colonne est juste100%
le probleme est connu :
lorsque j'execute : tous marche bien : quand je parcours les lignes de datagridview1 les lignes de datagridview3 varient selon les lignes selectionnées de datagridview1
et lorsque j'arrive a un elt de d1 qu'i n'a pas de contact enregistré dans la base de donnes ca veut dire datagridview3 doit etre vide alors la l'execution arrete
et m'indique l'exeption : nullreferenceException , La référence d'objet n'est pas définie à une instance d'un objet
sur dataGridView3.SelectedRows[0].Cells["Nom_TYPECONTACT"].Value.toString()

tous les methodes de remplissement de datagridview2 sont cités en haut (si tu trouve une erreur)


merci bien
a c 232 L Programmation
9 Mars 2012 15:29:28

Tu n'as pas fait ce que je t'ai dit.
Passe en mode debug, met un breakpoint et regarde quel est l'objet qui est null.
J'imagine que c'est le Value, mais du coup, pourquoi tu aurais une value null ?

Regarde la ligne qui est sélectionnée avec SelectedRows[0]
Contenus similaires
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS