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

Résolu
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 - 17 nov. 2005 à 14:36
cs_jimmy69 Messages postés 778 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

8 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
21 nov. 2005 à 11:01
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#]
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
17 nov. 2005 à 14:41
Salut,

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

je pense.

/*
coq
MVP Visual C#
*/
0
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 1
17 nov. 2005 à 14:52
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
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
17 nov. 2005 à 15:02
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#
*/
0

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

Posez votre question
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
17 nov. 2005 à 15:03
euh... as-tu ajouter à la collection de parametres les tiens

Sébastien FERRAND
[MVP C#]
0
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 1
17 nov. 2005 à 16:01
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
0
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 1
21 nov. 2005 à 10:58
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");


}
0
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 1
25 nov. 2005 à 17:22
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
0
Rejoignez-nous