Probléme insertion base de donnée Access
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:
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:
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