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