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

fatine88 Messages postés 6 Date d'inscription jeudi 2 septembre 2010 Statut Membre Dernière intervention 20 mai 2011 - 5 mai 2011 à 17:26
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 - 17 oct. 2013 à 13:06
salut,
je developpe avec l'asp.net (c#), j'ai plusieurs dropdownlist dans mon code et lorsque j'utilise "String EvaluéMat = DropDownList13.SelectedItem.Value;" avec la DropDownList13 ca génère l'erreur: "La référence d'objet n'est pas définie à une instance d'un objet."
alors qu'avec les autres dropdownlist ya pa d'erreur.
avez vs une idée concernant cette erreur? merci
*************************
voici le code:
void ChargerMatEvalué() //pour charger la dropdownliste13
{
//declarer les varr
SqlCommand myCommand;
SqlDataReader myReader;
//recuperer la conn stocke ds l'objet session
SqlConnection myConnection = (SqlConnection)Session["myconnection"];
//allocation de SqlCommand
String SQL = "SELECT * from evalué order by matricule_evalué";
myCommand = new SqlCommand(SQL, myConnection);
//allocation de SqlDataReader par l'intermediaire de SqlCommand
myReader = myCommand.ExecuteReader();
//parametrage de la liste der
DropDownList13.DataSource = myReader;
DropDownList13.DataValueField = "nomPrenom_evalué";
DropDownList13.DataTextField = "matricule_evalué";
//chargemennt effectif de la liste der
DropDownList13.DataBind();

//fermer le SqlDataReader
myReader.Close();
}
****************************
void AfficherLabel2()// pour afficher les informations ds des labels
{

DataTable dt = new DataTable();
SqlConnection connection = new SqlConnection("Server= SWEET-B9FFC6617\\SQLExpress; Initial Catalog=C:\\Documents and Settings\\Administrateur\\Mes documents\\basePFE.mdf;Integrated Security=true; User instance=True");
connection.Open();

String x = DropDownList2.SelectedItem.Value;
String EvaluéMat = DropDownList13.SelectedItem.Value;
String annéeID = DropDownList12.SelectedItem.Value;

SqlCommand sqlCmd = new SqlCommand("select * from evalué where evalué.matricule_evalué=@EvaluéMat ", connection);

SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
sqlDa.SelectCommand.Parameters.Add("@EvaluéMat", SqlDbType.Int);
sqlDa.SelectCommand.Parameters["@EvaluéMat"].Value = EvaluéMat;
sqlDa.SelectCommand.Parameters.Add("@annéeID", SqlDbType.Int);
sqlDa.SelectCommand.Parameters["@annéeID"].Value = annéeID;


sqlDa.Fill(dt);
if (dt.Rows.Count > 0)
{

Label1.Text = dt.Rows[0]["nomPrenom_evalué"].ToString();
Label2.Text = dt.Rows[0]["date_naissance_evalué"].ToString();
Label3.Text = dt.Rows[0]["etat_marital_evalué"].ToString();
Label4.Text = dt.Rows[0]["echelle_evalué"].ToString();
Label5.Text = dt.Rows[0]["echelon_evalué"].ToString();
Label6.Text = dt.Rows[0]["lieu_affectation_evalué"].ToString();
Label7.Text = dt.Rows[0]["date_affectation_evalué"].ToString();
Label8.Text = dt.Rows[0]["poste_evalué"].ToString();
Label9.Text = dt.Rows[0]["matricule_evalué"].ToString();
Label10.Text = dt.Rows[0]["CIN_evalué"].ToString();
Label11.Text = dt.Rows[0]["lieu_naissance_evalué"].ToString();
Label12.Text = dt.Rows[0]["nbr_enfant"].ToString();
Label13.Text = dt.Rows[0]["date_promotion"].ToString();
Label14.Text = dt.Rows[0]["ancienneté_evalué"].ToString();


}
connection.Close();
}

10 réponses

fatine88 Messages postés 6 Date d'inscription jeudi 2 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
5 mai 2011 à 17:28
j'ai oublié de mentionner ke j'utilise les dropdownlist a l'interieur 'un pannel:

Veuillez saisir la matricule de l'évalué que vous
cherchez ainsi qu'une année:


Matricule:,

,
Année:,
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
5 mai 2011 à 18:13
Salut,

l'erreur te signifie que DDL13.SelectedItem est null.
Maintenant il faut trouver pourquoi.
Tu peux déjà tenter d'utiliser DDL13.SelectedText à la place de SelectedItem.Value, car au pire cet accesseur te renverra une chaîne vide (et plus d'exception levée).

NB : il faut éviter les noms de variables avec des accents, par principe
0
fatine88 Messages postés 6 Date d'inscription jeudi 2 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
6 mai 2011 à 11:04
Bonjour,
merci de m'avoir repondu
en fait le pb c que qd j'exécute(apres avoir supprimé String EvaluéMat = DropDownList13.SelectedItem.Value;) la DLL13 est bien chargé a partir de la BD alors que qd j'ajoute cette ligne ca donne erreur.
concernant SelectedText ca n'existe pa
merci
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
6 mai 2011 à 11:14
Re,

désolé, SelectedText c'est pour les ComboBoxes (WinForm).
Sinon, vu que ton erreur empêche le bon remplissage de ta DLL il s'agit peut-être d'un souci d'organisation. Quand appelles-tu la fonction Charger() ? ta fonction Afficher() ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fatine88 Messages postés 6 Date d'inscription jeudi 2 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
6 mai 2011 à 11:28
la fct charger(): je l'appelle ds page_load
la fct afficher(): je l'appelle ds page_load et ds protected void DropDownList13_SelectedIndexChanged(object sender, EventArgs e)
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
6 mai 2011 à 11:36
On est d'accord que dans ton Page_Load tu appelles Charger() AVANT Afficher() ?

Mets un point d'arrêt sur le Binding de ta DDL13, et un autre sur la ligne de celle qui te lève l'erreur. Passe en debug pas à pas et regarde que tu t'arrêtes sur le premier avant le deuxième. Au niveau du deuxième, vérifie via les spy :
- la valeur de DDL13
- le nombre d'items de DDL13
- la valeur de DDL13.SelectedValue

On va faire du debuggage à distance ><
0
fatine88 Messages postés 6 Date d'inscription jeudi 2 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
6 mai 2011 à 11:43
what's a shame! j'ai appelé Afficher avant Charger
ca marche mnt, merci iiiinfiniment c trés gentil
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
6 mai 2011 à 11:47
Les erreurs qu'on met le plus longtemps à fixer sont souvent sur des petites bêtises qu'on n'imagine même pas possibles ;)

Bon dev
0
fatine88 Messages postés 6 Date d'inscription jeudi 2 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
6 mai 2011 à 11:54
oui vs avez tout a fait raison, souvent ce sont des erreurs simples alors que je refléchis a des choses compliquées
merci encore
0
Bonjour
"La référence d'objet n'est pas définie à une instance d'un objet."
ça m'a arrivé, et quand j'ai utilisé mes composants hors panel, l'erreur a disparu,
0
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021 3
17 oct. 2013 à 11:38
Je te conseil de créer ta propre discussion
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
17 oct. 2013 à 13:06
Bonjour, attention aux dates de discussion, celle-ci a été ouverte en mai 2011.
Une référence d'objet non définie, vient d'une variable qui n'a pas été correctement initialisée, et donc chaque cas est particulier.
Une réponse hors context 18 mois après n'apporte rien au schmilblick.
0
Rejoignez-nous