Bonjour à tous,
Je suis en train de développer une application de gestion de stock de produits en C# avec Entity Framework. Mais je me retrouve avec une erreur que je ne comprends pas.
J'ai trois tables comme ça
Produits (Reference, Designation, ...)
Commandes (CodeCommande, DateCommande)
Concerner(Reference, CodeCommande, Quantite)
Les produits sont enregistrés au préalable. C'est au niveau de l'enregistrement de la commande que j'ai un souci.
Sur mon formulaire j'ai deux boutons Ajouter et Enregistrer. J'ai aussi créé une List<Concerner> lesProduitsCommandes = new List<Concerner>();.
Au chargement de mon formulaire, je sélectionne tous les produits que j'affiche dans un Combobox.
Pour chaque produit sélectionné dans mon Combobox je clique sur mon bouton Ajouter et je récupère la Reference du produit, le code de la commande en cours puis la quantité commandée et je fais un add dans ma List<Concerner> lesProduitsCommandes = new List<Concerner>();
Et après que j'aie ajouté tous les produits à ma liste, je clique sur Enregistrer pour enregistrer dans les tables commande et concerner.
Mais il se trouve que la commande est enregistrée et concerner ne l'est pas. Je ne comprends pas du tout.
J'ai donc mis un point d’arrêt pour vérifier le contenu de ma liste. Il se trouve qu'au clic du bouton Ajouter la ligne de commande s'ajoute à concerner.
Mais j'ai vérifié au moment où j'enregistre avec le bouton Enregistrer il n'y a rien dans la liste. C'est à dire que de l'événement Ajouter à l'événement Enregistrer
le contenu de la liste se vide. Je ne comprends vraiment pas.
J'espère avoir bien expliqué mon problème. Je vous laisse un extrait de mon code, j'espère que ça pourra aider
Aidez moi svp!
Code C# : 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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 GestockContext bdd = new GestockContext(); public List<Concerner> lesProduitsCommandes = new List<Concerner>(); protected void ButtonAjouter_Click(object sender, EventArgs e) { try { Concerner leproduit = new Concerner(); leproduit.CodeCommande = Convert.ToInt32(TextBoxCode.Text); leproduit.Reference = DpDesignation.SelectedValue; leproduit.QteCommandee = Convert.ToInt32(TextBoxQte.Text); leproduit.PrixHT = Convert.ToDecimal(TextBoxPrixHT.Text); lesProduitsCommandes.Add(leproduit); } catch (Exception ex) { throw ex; } } protected void ButtonValider_Click(object sender, EventArgs e) { try { if (lesProduitsCommandes != null) { Commandes laCommande = new Commandes(); laCommande.CodeClient = DpClient.SelectedValue; laCommande.CodeCommande = Convert.ToInt32(TextBoxCode.Text); laCommande.DateCommande = Convert.ToDateTime(TextBoxDate.Text); laCommande.Concerner = lesProduitsCommandes; bdd.Commandes.Add(laCommande); bdd.SaveChanges(); } } catch (Exception ex) { throw ex; } }
Partager