Object reference not set to an instance of an object(.length) [Résolu]

Signaler
Messages postés
79
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009
-
Messages postés
79
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009
-
bonsoir,
j'ai un probleme au niveau de .length
j ai fais une methode qui prend comme parmetre une variable string
public string getstrg(string tx)
        {
            string[] s = new string[tx.Length];
            ...
}
lorsque j'ai l appel de cette methde elle marche bien mais mon probleme est lorsque j e donne comme parametre d'entrée un element de tableau string
for (int p = 0; p < tab_nm.Length; p++)
            {
                tab_nmv[p] = gt.getstrg(tab_nm[p]);
..
}
il m affiche cette message d'erreur Object reference not set to an instance of an object au niveau tab_nmv[p] = gt.getstrg(tab_nm[p]) et string[] s = new string[tx.Length];
j attends votre réponse
Merci d'avance

9 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Le code est vraiment pas très beau
Tu fais quoi si tu reçois plus de 100 enregistrements? Avec des tableaux initialisés à cette taille (100) tu risques d'avoir des problèmes...

=> Utilises List<string> à la place.

Quand on utilise un reader, il faut ABSOLUMENT le fermer!

=> reader.Close()

Pour terminer, ton erreur est normale et vient de l'utilisatation des tableaux. Quand tu initialises un tableau de string, il insère tout des null dedans. Ta méthode va remplir les x premiers mais les autres seront toujours null. Du coup, quand tu fais un ToString dessus, ça coince (cela dit en passant, le ToString ne sert à rien dans ce cas).

=> En utilisant la List<string> comme expliqué ci-dessus, ça devrait régler ton problème.

<hr />
-Blog-
-Site Perso-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Bonsoir,
Est-ce que ce ne serait pas l'objet gt qui serait null ?

<hr />
-Blog-
-Site Perso-
Messages postés
79
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009

bonsoir,
nn car gt est une instantiation de classe
Get gt=new Get();
for (int p = 0; p < tab_nm.Length; p++)
            {
                tab_nmv[p] = gt.getstrg(tab_nm[p]);
..
}
le probleme lorsue j'ai ttester ma methode avec une chaine de caractere il marche bien mais quand j ai le teste avec un element du tableau de type string il m affiche une message d'erreur
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Dans la boucle, essaye:  int p=0; p<tab_nb.Length - 1; p++





<hr />
-Blog-
-Site Perso-
Messages postés
79
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009

j ai essayé mais le meme pbleme
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
tab_nmv est null?
J'en sais rien, essayes de poster un code complet qui ne fonctionne pas, que je puisse tester...

<hr />
-Blog-
-Site Perso-
Messages postés
79
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009

ici je fais l appel a la methode  getstrg(tab_nm[p].ToString()
        public bool test_nom_Ap(string nm_p)
        {
            string[] tab_nm = new string[100];
            string[] tab_nmv = new string[100];
            Get gt=new Get();
            int h = 0;
            string req = "select  Nom_Ap from serveur";
            SqlConnection connection = new SqlConnection(connectionString);
            SqlCommand oCommand = new SqlCommand(req, connection);
            connection.Open();
            bool b=false;
            oCommand.CommandText = req;
            SqlDataReader reader = oCommand.ExecuteReader();
            while (reader.Read())
            {
                string result1 = reader["Nom_Ap"].ToString();

                tab_nm[h] = result1;
                h++;
            }
            for (int p = 0; p < tab_nm.Length-1; p++)
            {
                tab_nmv[p] = gt.getstrg(tab_nm[p].ToString());
                if (nm_p==tab_nmv[p])
                {
                    b= false;
                    break;
                }
                else b=true;
            }
            return b;
        }
et voila ma methode getstrg
        public string getstrg(string tx)
        {
            string[] s = new string[tx.Length];
            string z;
            for (int i = 0; i < tx.Length; i++)
            {string ss=tx.Substring(i, 1);
                if(ss!=" ")
                {
                    s[i] = ss;
                }
            }
           
                z =string.Join("", s);
                return z;

        }
sachant que le tableau tab_nm n'est pas null et tab_nmv est null car il n as pa pu le remplir
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Alors, problème résolu?

<hr />
-Blog-
-Site Perso-
Messages postés
79
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009

salut,
oui c bon merci