IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

La référence d objet n est pas définie à une instance d un objet


Sujet :

C#

  1. #1
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut La référence d objet n est pas définie à une instance d un objet
    Bonjour, je recois le message d'erreur suivant sur cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    la référence d objet n est pas définie à une instance d un objet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     connection.Open();
                
                    DataTable dt = new DataTable();
                    adaptQ = new SqlDataAdapter("SELECT ID, NumAO, Secteur, Classe, Qualifs, TypeQ FROM Qualifications Where NumAO = '" + (cmbAO.SelectedItem as ComboBoxItem).Text + "'", connection);
                    adaptQ.Fill(dt);
                    dgQualifications.DataSource = dt;
    
                    connection.Close();
    une idée ?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    L'erreur signifie que tu tentes d'accéder à un objet non instancié, donc à "un pointeur null".
    Normalement en survolant les différents éléments de la ligne, tu devrais voir lequel est null.
    Ce n'est pas connection, sinon tu aurais l'erreur à la ligne précédente.
    Ce n'est pas adaptQ, puisque tu l'instancies justement sur cette ligne.
    Il ne reste que cmbAO.SelectedItem.

    Tatayo.

  3. #3
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    effectivement c'est cmbAO qui est null, parce que ma BD est null

    quand j'ai fait comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (!string.IsNullOrEmpty((cmbAO.SelectedItem as ComboBoxItem).Text))
                {
                    DisplayDataQ();
                    DisplayDataDecision();
                }
    il me retourne la meme erreur

    J' suivre un peu avec les point d'arret, je trouve que le probleme vient par la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
                System.Data.SqlClient.SqlDataReader Reader;
                SqlCommand cmd = new SqlCommand(Query, connection);
     
                connection.Open();
                Reader = cmd.ExecuteReader();
                cmbAO.Items.Clear();
                while (Reader.Read())
                {
                    cmbAO.Items.Add(new ComboBoxItem(Convert.ToString(Reader.GetValue(0)), Convert.ToString(Reader.GetValue(1))));
                }
                Reader.Close();
                connection.Close();
                if (cmbAO.Items.Count > 0)
                {
                    cmbAO.SelectedIndex = 0;
                }
    j'ai deux combo : année et AO, elles sont dépendantes, la BD contient
    2016 vide
    2017 element X

    2016 c'est index 0, par contre (cmbAO.SelectedItem as ComboBoxItem).Text) contient element X , c'est pourquoi il atteint la ligne DisplayDataQet et apres il le trouve null.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    12345
    if (!string.IsNullOrEmpty((cmbAO.SelectedItem as ComboBoxItem).Text))
                {
                    DisplayDataQ();
                    DisplayDataDecision();
                }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    public frmInsertion()
            {
                InitializeComponent();
                this.remplirListAO();
                if (cmbAO.Items.Count > 0)
                {
                cmbAO.SelectedIndex = 0;
                }
     
                cmbJr.SelectedIndex = 0;
                cmbAnneeAO.SelectedIndex = 0;
                cmbQualif.SelectedIndex = 0;
     
                if (!string.IsNullOrEmpty(cmbAO.Text))
                {
                    DisplayData();
                    DisplayDataJr();
                    DisplayDataQ();
                    DisplayDataDecision();
                }
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    private void remplirListAO()
            {
                string Query = "SELECT id,NumAO FROM Appelsdoffre where NumAO like '%" + cmbAnneeAO.Text + "%'";
     
                System.Data.SqlClient.SqlDataReader Reader;
                SqlCommand cmd = new SqlCommand(Query, connection);
     
                connection.Open();
                Reader = cmd.ExecuteReader();
                cmbAO.Items.Clear();
                while (Reader.Read())
                {
                    cmbAO.Items.Add(new ComboBoxItem(Convert.ToString(Reader.GetValue(0)), Convert.ToString(Reader.GetValue(1))));
                }
                Reader.Close();
                connection.Close();
                if (cmbAO.Items.Count > 0)
                {
                    cmbAO.SelectedIndex = 0;
                }
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private void cmbAO_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(cmbAO.Text))
                {
                    DisplayData();
     
                    DisplayDataAO();
     
                    DisplayDataJr();
     
                    DisplayDataQ();
     
                    DisplayDataDecision();
                }
            }
    une idée ?

    Quand j'enleve ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                //if (cmbAO.Items.Count > 0)
                //{
                //    cmbAO.SelectedIndex = 0;
                //}
    tout se passe bien mais je dois selectionner le premier element dans le 2eme combo

  4. #4
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    ca tombe sous le sens ......
    donc inutile de poster ce genre de problème ! !!!

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/09/2007, 10h38
  2. Réponses: 2
    Dernier message: 09/09/2007, 14h25
  3. Réponses: 8
    Dernier message: 04/06/2007, 16h20
  4. Réponses: 24
    Dernier message: 01/06/2007, 09h26
  5. Réponses: 8
    Dernier message: 11/07/2006, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo