/// <summary> /// Renvoie la liste de tous les articles dans la famille "Famille" et la sous-famille "SousFamille". /// </summary> /// <param name="Famille"></param> /// <param name="SousFamille"></param> /// <returns></returns> public List <Article> GetArticlesWhereSousFamille(string Famille, string SousFamille) { List <Article> ListeArticles = new List <Article>(); DAOSousFamille daoSousFamille = new DAOSousFamille(); DAOFamille daoFamille = new DAOFamille(); int RefFamille = daoFamille.GetRefFamille(Famille); int RefSousFamille = daoSousFamille.GetRefSousFamille(RefFamille, SousFamille); string Cmd = "SELECT RefArticle FROM Articles WHERE RefSousFamille = " + RefSousFamille; using (SQLiteConnection Connection = new SQLiteConnection(DatabasePath)) { Connection.Open(); using (SQLiteCommand Command = new SQLiteCommand(Cmd, Connection)) { // On récupère la liste des articles using (SQLiteDataReader Reader = Command.ExecuteReader()) { while (Reader.Read()) { // Pour chaque RefArticle, on récupère l'article correspondant et on l'ajoute à la liste Article NewArticle = GetArticle(Reader.GetString(0)); ListeArticles.Add(NewArticle); } } return(ListeArticles); } } }
/// <summary> /// Met à jour un article déjà existant dans la base de données. /// </summary> /// <param name="ArticleUpdated">L'article à mettre à jour.</param> public int UpdateArticle(Article ArticleUpdated) { DAOMarque daoMarque = new DAOMarque(); DAOFamille daoFamille = new DAOFamille(); DAOSousFamille daoSousFamille = new DAOSousFamille(); int RefMarque = daoMarque.GetRefMarque(ArticleUpdated.Marque); int RefFamille = daoFamille.GetRefFamille(ArticleUpdated.Famille); int RefSousFamille = daoSousFamille.GetRefSousFamille(RefFamille, ArticleUpdated.SousFamille); string Cmd = "UPDATE Articles " + "SET Description = @Description, RefSousFamille = @RefSousFamille, RefMarque = @RefMarque, PrixHT = @PrixHT, Quantite = @Quantite " + "WHERE RefArticle = @RefArticle;"; using (SQLiteConnection Connection = new SQLiteConnection(DatabasePath)) { Connection.Open(); using (SQLiteCommand Command = new SQLiteCommand(Cmd, Connection)) { SQLiteParameter RefArticleParam = new SQLiteParameter("@RefArticle", DbType.String) { Value = ArticleUpdated.RefArticle }; SQLiteParameter DescriptionParam = new SQLiteParameter("@Description", DbType.String) { Value = ArticleUpdated.Description }; SQLiteParameter RefSousFamilleParam = new SQLiteParameter("@RefSousFamille", DbType.Int16) { Value = RefSousFamille }; SQLiteParameter RefMarqueParam = new SQLiteParameter("@RefMarque", DbType.Int16) { Value = RefMarque }; SQLiteParameter PrixHTParam = new SQLiteParameter("@PrixHT", DbType.Decimal) { Value = ArticleUpdated.PrixHT }; SQLiteParameter QuantiteParam = new SQLiteParameter("@Quantite", DbType.Int16) { Value = ArticleUpdated.Quantite }; Command.Parameters.Add(RefArticleParam); Command.Parameters.Add(DescriptionParam); Command.Parameters.Add(RefSousFamilleParam); Command.Parameters.Add(RefMarqueParam); Command.Parameters.Add(PrixHTParam); Command.Parameters.Add(QuantiteParam); return(Command.ExecuteNonQuery()); } } }
/// <summary> /// Ajoute un article à la base de données. /// </summary> /// <param name="article">L'article à ajouter</param> /// <returns></returns> public int AddArticle(Article article) { DAOMarque daoMarque = new DAOMarque(); DAOFamille daoFamille = new DAOFamille(); DAOSousFamille daoSousFamille = new DAOSousFamille(); int RefMarque = daoMarque.GetRefMarque(article.Marque); if (RefMarque == -1) { RefMarque = daoMarque.AddMarque(article.Marque); } int RefFamille = daoFamille.GetRefFamille(article.Famille); if (RefFamille == -1) { RefFamille = daoFamille.AddFamille(article.Famille); } int RefSousFamille = daoSousFamille.GetRefSousFamille(RefFamille, article.SousFamille); if (RefSousFamille == -1) { RefSousFamille = daoSousFamille.AddSousFamille(RefFamille, article.SousFamille); } string Cmd = "INSERT INTO Articles (RefArticle, Description, RefSousFamille, RefMarque, PrixHT, Quantite) " + "VALUES(@RefArticle, @Description, @RefSousFamille, @RefMarque, @PrixHT, @Quantite);"; using (SQLiteConnection Connection = new SQLiteConnection(DatabasePath)) { Connection.Open(); using (SQLiteCommand Command = new SQLiteCommand(Cmd, Connection)) { SQLiteParameter RefArticleParam = new SQLiteParameter("@RefArticle", DbType.String) { Value = article.RefArticle }; SQLiteParameter DescriptionParam = new SQLiteParameter("@Description", DbType.String) { Value = article.Description }; SQLiteParameter RefSousFamilleParam = new SQLiteParameter("@RefSousFamille", DbType.Int16) { Value = RefSousFamille }; SQLiteParameter RefMarqueParam = new SQLiteParameter("@RefMarque", DbType.Int16) { Value = RefMarque }; SQLiteParameter PrixHTParam = new SQLiteParameter("@PrixHT", DbType.Decimal) { Value = article.PrixHT }; SQLiteParameter QuantiteParam = new SQLiteParameter("@Quantite", DbType.Int16) { Value = article.Quantite }; Command.Parameters.Add(RefArticleParam); Command.Parameters.Add(DescriptionParam); Command.Parameters.Add(RefSousFamilleParam); Command.Parameters.Add(RefMarqueParam); Command.Parameters.Add(PrixHTParam); Command.Parameters.Add(QuantiteParam); return(Command.ExecuteNonQuery()); } } }