Bonjour � tous,
je me suis document�e avant de poster, et malgr� mon niveau, je crois que mon code est bon ; vraiment je ne vois pas l'erreur que j'ai faite ! peut �tre que quelqu'un d'externe y verra mieux ?
Mon probl�me est tout simple, j'ai une proc_stock�e usp_insertDetails (qui fonctionne bien quand je l'execute � part, avec des valeurs pour ses param�tres entr�es manuellement). Elle prend 5 param�tres, les 4 premiers fonctionnent bien mais au dernier j'ai une erreur : "@MyForfaitDiamId" is not supplied. Cette erreur apparait quand le systeme essaie d'executer la requete. (avant derni�re ligne)
Voil� mon code c#
comme vous le voyez, le systeme est cens� d�duire (avec les if) le 5�me param�tre tandis que les autres sont directement puis� dans un controle.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 SqlCommand maCommande2 = new SqlCommand(); maCommande2.Connection = maConnexion; maCommande2.CommandText = "usp_insertDetails"; maCommande2.CommandType = CommandType.StoredProcedure; maCommande2.Parameters.AddWithValue("@MyProductId", Convert.ToInt32(produitId.Value.ToString())); maCommande2.Parameters.AddWithValue("@MyCouleurId", Convert.ToInt32(couleur.Value)); maCommande2.Parameters.AddWithValue("@MyDiametreId", Convert.ToInt32(diametre.Value)); maCommande2.Parameters.AddWithValue("@MyLongueurId", Convert.ToInt32(longueur.Value)); if ((Convert.ToInt32(diametre.Value) == 2) || (Convert.ToInt32(diametre.Value) == 3)) maCommande.Parameters.AddWithValue("@MyForfaitDiamId", 2); else if ((Convert.ToInt32(diametre.Value) == 4) || (Convert.ToInt32(diametre.Value) == 5) || (Convert.ToInt32(diametre.Value) == 6)) maCommande.Parameters.AddWithValue("@MyForfaitDiamId", 3); else maCommande.Parameters.AddWithValue("@MyForfaitDiamId", 1); maConnexion.Open(); maCommande2.ExecuteNonQuery(); maConnexion.Close();
Je pr�cise qu'avant que je ne rajoute la partie des if pour le 5�me param�tre, (ma proc_stock� n'en avait que 4), �a fonctionnait parfaitement.
Si je ne suis pas claire, dites le moi.
Merci de votre aide
ps : je travaille avec visual studio 2008
Partager