Changer de commandtext .... [Résolu]

Signaler
Messages postés
115
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
2 août 2005
-
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
-
Bonjour,

Je cherche un truc tout bête....

Je veux changer le contenu du commandText d'un odbcCommand en court de route.... qu'est-ce que je dois faire?

je vous montre :

j'exécute une première requête, et lorsque j'ai initialisé mon reader je fais :


string reqMaj;


MajCmd.Connection.Open();



while(mainReader.Read())


{



if(QuestionExist(op_id,
int.Parse(mainReader["sl_id"].ToString())))


{


reqMaj="insert into affiche (af_sl_nom,af_images,af_parametres,af_sl_id,af_page,af_texte,af_op_id,af_selectionne) values (?,?,?,?,?,?,?,1)";


}



else


{


reqMaj="insert into affiche (af_sl_nom,af_images,af_parametres,af_sl_id,af_page,af_texte,af_op_id) values (?,?,?,?,?,?,?)";


}


MajCmd.CommandText=reqMaj;


MajCmd.Parameters.Add("", OdbcType.VarChar).Value =mainReader["sl_nom"].ToString();


MajCmd.Parameters.Add("", OdbcType.VarChar).Value =mainReader["sl_images"].ToString();


MajCmd.Parameters.Add("", OdbcType.VarChar).Value =mainReader["sl_parametres"].ToString();


MajCmd.Parameters.Add("", OdbcType.Int).Value =
int.Parse(mainReader["sl_id"].ToString());


MajCmd.Parameters.Add("", OdbcType.VarChar).Value =mainReader["sl_page"].ToString();


MajCmd.Parameters.Add("", OdbcType.VarChar).Value =mainReader["sl_texte"].ToString();


MajCmd.Parameters.Add("", OdbcType.Int).Value =op_id;


MajCmd.ExecuteNonQuery();


}



//possibilité de changer le texte de la requete sans fermer la connexion???


MajCmd.Connection.Close();

Mais ca ne marche pas... le changement de requete n'est pas pris en compte, et ce même si je ferme et ouvre la conection dans la boucle......

Q'est-ce qui manque a mon code???

6 réponses

Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
63
Hello,

Je ne suis pas sur que ton problème vienne du CommandText.

Essaie de faire un MajCmd.Parameters.Clear() avant de faire les Add.
Autrement, il va toujours prendre les paramètres que tu as mis lors de la première itération.

Amicalement, SharpMao
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
14
tu n'a pas le meme nombre de parametre dans tes deux requetes...



il faut ajourter le bon nombre de parametre a ton objet cmd...
de plus je ne mettrais pas le Parameters.add dans la boucle while...

l'ajout de parametre n'est a faire qu'une fois...

pour modifier les valeurs utilise cmd.parameters[0].Value = ......
cmd.Parameters[....].Value = ....

etc...


Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
14
plus rapide tu est sharpmao


Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
63
Hello Arthénius,

Désolé, mais tu as dû mal voir, en effetm il n'y a pas le même nombre de champs insérés, mais dans values(?,?,?...
La première finit ave ',1', le compte est bon.

Amicalement, SharpMao
Messages postés
115
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
2 août 2005

merci beaucoup. le clear me manquais effectivement.

Pour le nombre de paramètres, je sais qu'il n'y a pas le même nombre... c'est normal..
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
14
certes je m'inclines et je sors


Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."