Bonjour ,

Je fais actuellement de faire un programme pour la gestion d'un catalogue de produit . Je rencontre un soucis concernant l' insertion de produit , j'arrive trés bien à supprimer , mettre à jour et récuperer l'ensemble des produits de la base mais impossible d'insérer pourtant j'ai une Classe Categorie qui se base sur le meme principe que cette classe Produit et je n'aie rencontré aucun soucis pour ajouter des catégories .

Voici mon code ci-dessous si quelqu'un peut me dire si j'ai fait une erreur sa serait sympa car je suis bloqué pour continuer le reste et là je bloque car je ne vois pas d'ou sa vient

Class Produit

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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
 
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ADODB ; 
namespace produitv1
{
   public class ProduitDAO
    {
       private static Connection maCnx;
       private static ProduitV2 p;
       private static Recordset rs; 
 
       public static ProduitV2 Find(string reference)
       {
           string sql = "Select * From Produit Where reference ='"+reference+"';";
 
           maCnx = AccesBD.GetInstance();
 
           rs = AccesBD.ExecutionRequeteSelection(sql);
 
           Categorie c = CategorieDAO.Find(rs.Fields["codeCat"].Value);
 
           if(!rs.EOF)
           {
               p = new ProduitV2(rs.Fields["reference"].Value, rs.Fields["designation"].Value, rs.Fields["prixHT"].Value , c);
           }
 
 
           return p; 
 
       }
 
       public static List<ProduitV2> Retreive()
       {
           string sql;
           ProduitV2 p;
           Recordset rs;
           List<ProduitV2> listproduit;
 
           listproduit = new List<ProduitV2>();
 
           maCnx = AccesBD.GetInstance();
 
           sql = "Select * FROM produit";
 
           rs = AccesBD.ExecutionRequeteSelection(sql);
 
           while (!rs.EOF)
           {
               Categorie c = CategorieDAO.Find(rs.Fields["codeCat"].Value);
 
               p = new ProduitV2 (rs.Fields["reference"].Value  , rs.Fields["designation"].Value , rs.Fields["prixHT"].Value , c) ;
 
               listproduit.Add(p);
 
               rs.MoveNext();
           }
 
           maCnx.Close();
 
           return listproduit;
       }
 
       public static Boolean Update(ProduitV2 p)
       {
           Connection maCnx; 
           string sql;
 
           maCnx = AccesBD.GetInstance();
 
           sql = "UPDATE produit set designation = '" + p.Designation + "', prixHT = '" + p.PrixHT + "'Where reference ='" + p.Reference + "';";
           if (AccesBD.ExecutionRequeteAction(sql) == true)
           {
               return true;
           }
           else
           {
               return false;
           }
       }
 
       public static Boolean Delete(ProduitV2 p)
       {
 
           Connection maCnx;
           string sql;
 
           maCnx = AccesBD.GetInstance();
 
 
           sql = "DELETE  from produit Where reference ='" + p.Reference + "';";
 
 
           if (AccesBD.ExecutionRequeteAction(sql) == true)
           {
               return true;
           }
           else
           {
               return false;
           }
 
       }
 
       public static Boolean Create(ProduitV2 p)
       {
 
 
           Connection maCnx;
           string sql;
 
           maCnx = AccesBD.GetInstance();
 
           sql = "insert into produit values('" + p.Reference + "', '" + p.Designation + "'," + p.PrixHT + ", '" + p.Categorie.CodeCat + "')";
 
           if (AccesBD.ExecutionRequeteAction(sql) == true)
           {
               return true;
           }
           else
           {
               return false;
           }
 
       }
    }
}
Test Unitaire insertion Produit

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
21
22
23
24
25
26
27
        [TestMethod]
        public void insertion()
        {
            Categorie c = new Categorie("cat2", "Materiaux");
            ProduitV2 p = new ProduitV2("ref10", "stabilo", 2, c);
 
            bool expected = true;
            bool actual = ProduitDAO.Create(p);
 
            Assert.AreEqual(expected, actual);
 
 
        }
 
        [TestMethod]
        public void suppression()
        {
            Categorie c = new Categorie("cat1", "Bureautique");
            ProduitV2 p = new ProduitV2("ref1", "bureau", 150, c);
 
            bool expected = true;
            bool actual = ProduitDAO.Delete(p);
 
            Assert.AreEqual(expected, actual);
 
 
        }
Merci