Update.parameters[].value => ERREUR reference d'objet n'est pas definie !!!!!!! [Résolu]

Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
- - Dernière réponse : cs_jimmy69
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
- 25 nov. 2005 à 17:22
Bonjour a tous,

Je debute sous .net 1.1 avec c sharp winform et je me connecte a une db ms sql serveur !

Je suis en train de m'entrainer a faire des update sur une table ...mais ca coince !
j'obtiens ce message d'erreur ....et la ligne plus bas est en jaune !!!!

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


daA.UpdateCommand.Parameters["nom"].Value = nouvNom;

je vois pas trop ce qui faut que je fasse si quelqu'un avait une idée !

voici une partie de mon code

//MON CODE


/// <summary>



/// Variable nécessaire au concepteur.



/// </summary>


SqlConnection conn;

SqlDataAdapter daA;


DataSet ds;


//MA CONNECTION EN CLIQUANT SUR UN MENU


private
void menuItem2_Click(
object sender, System.EventArgs e)


{



//Connection


menuClean();


conn =
new SqlConnection(source);



//Open connection


conn.Open();



string select = "select nom,age from graphesql";



//DataAdapter


daA =
new SqlDataAdapter(select,conn);


ds =
new DataSet();


daA.Fill(ds,"graphe");



//Connection


dataGrid1.SetDataBinding(ds,"graphe");


txtNom.DataBindings.Add("Text",ds,"graphe.nom");


txtAge.DataBindings.Add("Text",ds,"graphe.age");



//Close


conn.Close();


}



//ET MON UPDATE


//Update



private
void btnUp_Click(
object sender, System.EventArgs e)


{



string nouvNom = txtNom.Text;



string nouvAge = txtAge.Text;



//Mise a jour


daA.UpdateCommand.Parameters["nom"].Value = nouvNom;


daA.UpdateCommand.Parameters["age"].Value = nouvAge;



//Envoit


daA.Update(ds,"graphe");


}



Je vous remercie

Christophe
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
30
3
Merci
je te conseille de mettre un

sp.Parameters.Clear();

avant :


sp.Parameters.Add(new SqlParameter("@p",SqlDbType.Int));


sp.Parameters.Add(
new SqlParameter("@n",SqlDbType.NVarChar,30));


sp.Parameters.Add(
new SqlParameter("@a",SqlDbType.Int));



Sébastien FERRAND
[MVP C#]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 135 internautes nous ont dit merci ce mois-ci

Commenter la réponse de sebmafate
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
64
0
Merci
Salut,

daA.UpdateCommand.Parameters["@nom"].Value = nouvNom;
daA.UpdateCommand.Parameters["@age"].Value = nouvAge;

je pense.

/*
coq
MVP Visual C#
*/
Commenter la réponse de cs_coq
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
0
Merci
salut coq,

je viens de tester mais cela ne va pas !!!!!
Il me fait toujours la meme erreur ...

daA.UpdateCommand.Parameters["@age"].Value = nouvAge

qd on mets le @ ce n'est pas qd on utilise les procedures stockees ! !?

En tout cas je vois pas pourquoi ca tourne pas !!!!!

Je continue a chercher ...si tu as une autre idée ...
le message me dit qu'une reference n'est pas definie !!!!

ne faudrait il pas instancier quelque chose !!!!!
je debute sorry

Christophe
Commenter la réponse de cs_jimmy69
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
64
0
Merci
Tu es sur d'avoir un paramètre déjà défini avec ce nom là dans la liste des paramètres ?
Teste le nombre de paramètres présents dans la collection
Teste la nullité du retour de "daA.UpdateCommand.Parameters["@age"]" avant d'essayer de te servir de la propriété Value...
...

/*
coq
MVP Visual C#
*/
Commenter la réponse de cs_coq
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
30
0
Merci
euh... as-tu ajouter à la collection de parametres les tiens

Sébastien FERRAND
[MVP C#]
Commenter la réponse de sebmafate
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
0
Merci
salut salut,

euh mon niveau est trop faible pour vous comprendre sorry !!!!!

en fait ....j'ai bien une table avec un champ nom et age !

je fais un select je remplis un dataset !

j'affiche tout ds un datagrid je colle les donnees du datagrid a des textbox et je peux naviguer dedans


conn.Open();



string select = "select nom,age from graphesql";



//DataAdapter


daA =
new SqlDataAdapter(select,conn);


ds =
new DataSet();


daA.Fill(ds,"graphe");



//Connection


dataGrid1.SetDataBinding(ds,"graphe");


txtNom.DataBindings.Add("Text",ds,"graphe.nom");


txtAge.DataBindings.Add("Text",ds,"graphe.age");



//Close


conn.Close();

}

maintenant je fais un update en modifiant les valeurs du textbox et en cliquant sur le bouton !Je n'ai pas de procedure stockee ni de requete sql update !

avec ce code !


//Update



private
void btnUp_Click(
object sender, System.EventArgs e)


{



string nouvNom = txtNom.Text;



string nouvAge = txtAge.Text;



//Mise a jour


daA.UpdateCommand.Parameters["nom"].Value = nouvNom;


//daA.UpdateCommand.Parameters["@nom"].Value = nouvNom;
daA.UpdateCommand.Parameters["age"].Value = nouvAge;



//Envoit


daA.Update(ds,"graphe");


}



Y'a surement quelque chose que je ne pige pas ! Les donnees sont ds le dataset normalement qd je clique sur mon bouton il devrait mettre a jour la ligne correspondante du dataset qui a ete modifie !

Je vois pas ...je suis un peu perdu ....!

Pas facile qd on debute ...

Qu'en pensez vous ...

Je vous remercie

Christophe
Commenter la réponse de cs_jimmy69
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
0
Merci
salut salut,

j'avance mais j'ai du mal! voila ce que j'ai fait ca tourne j'arrive a faire un update d'une ligne grace a une procedure stockee mais lorsque je veux faire un deuxieme update soit sur la meme ligne ou une autre le programme s'arrete et me dit :

Informations supplémentaires : Update requiert un UpdateCommand valide lors du passage de la collection DataRow avec des lignes modifiées.

Pouvez vous m'aider ...mon code ci dessous est il jsute ?

Je vous remercie

Christophe


//Update



private
void btnUp_Click(
object sender, System.EventArgs e)


{


conn.Open();



//parametre => nom d la sp et conn


SqlCommand sp =
new SqlCommand("UpdatingGraphe",conn);



//Type de commande


sp.CommandType = CommandType.StoredProcedure;



//Parametre @nom du param, type et valeur



//


sp.Parameters.Add(
new SqlParameter("@p",SqlDbType.Int));


sp.Parameters.Add(
new SqlParameter("@n",SqlDbType.NVarChar,30));


sp.Parameters.Add(
new SqlParameter("@a",SqlDbType.Int));



//


sp.Parameters[0].Value = txtid.Text;


sp.Parameters[1].Value = txtNom.Text;


sp.Parameters[2].Value = txtAge.Text;



//Execution


sp.ExecuteNonQuery();


conn.Close();



//Mise a jour


daA.Update(ds,"graphe");


dataGrid1.SetDataBinding(ds,"graphe");


}
Commenter la réponse de cs_jimmy69
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
0
Merci
Salut salut;

Je tiens a vous remercier il m'a fallut du temps pour comprendre le tout mais j'avance ds la programmation c# :-) !

Bon week end
Christophe
Commenter la réponse de cs_jimmy69