/// <summary> /// Cette methode permet d'avoir toutes les informations d'une famille en fonction de son identifiant /// </summary> /// <param name="reffamille"> l'identifiant de la famille</param> /// <returns>la famille correspondante </returns> public Famille GetFamille(int reffamille) { Famille famille = null; int reffamilleTrouve; string nomfamilleTrouve; RequeteDonneesFamille = "select * from Familles where Familles.RefFamille = @ref"; InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteDonneesFamille, InterfaceDB.GetInstaneConnexion()); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@ref", reffamille); try { Lecture_Donnee = InterfaceDB.Commande_sqlite.ExecuteReader(); while (Lecture_Donnee.Read()) { reffamilleTrouve = Int32.Parse(Lecture_Donnee["RefFamille"].ToString()); nomfamilleTrouve = Lecture_Donnee["Nom"].ToString(); famille = new Famille(reffamilleTrouve, nomfamilleTrouve); } } catch (SQLiteException ex) { famille = null; Console.WriteLine(" * Erreur de lecture dans la table Famille : " + ex.Message); } return(famille); }
/// <summary> /// Cette methode nous donne la liste de toutes les marques de la table Marques /// </summary> /// <returns>liste de marque </returns> public List <Marque> GetToutesMarque() { List <Marque> listmarque = null; Marque marque = null; int refmarqueTrouve; string nomTrouve; RequeteDonneesMarque = "select * from Marques"; InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteDonneesMarque, InterfaceDB.GetInstaneConnexion()); try { SQLiteDataReader Lecture_donnee = InterfaceDB.Commande_sqlite.ExecuteReader(); listmarque = new List <Marque>(); while (Lecture_donnee.Read()) { refmarqueTrouve = Int32.Parse(Lecture_donnee["RefMarque"].ToString()); nomTrouve = Lecture_donnee["Nom"].ToString(); marque = new Marque(refmarqueTrouve, nomTrouve); listmarque.Add(marque); } } catch (SQLiteException ex) { listmarque = null; Console.WriteLine(" * Erreur de lecture dans la table Famille: " + ex.Message); } return(listmarque); }
/// <summary> /// Cette methode permet d'avoir toutes les informations d'une marque en fonction de son identifiant /// </summary> /// <param name="refmarque">l'identifiant de la marque </param> /// <returns>la marque correspondante</returns> public Marque GetMarque(int refmarque) { Marque marque = null; int refmarqueTrouve; string nomTrouve; RequeteDonneesMarque = "select * from Marques where Marques.RefMarque=@ref"; InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteDonneesMarque, InterfaceDB.GetInstaneConnexion()); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@ref", refmarque); try { Lecture_Donnee = InterfaceDB.Commande_sqlite.ExecuteReader(); while (Lecture_Donnee.Read()) { refmarqueTrouve = Int32.Parse(Lecture_Donnee["RefMarque"].ToString()); nomTrouve = Lecture_Donnee["Nom"].ToString(); marque = new Marque(refmarqueTrouve, nomTrouve); } } catch (SQLiteException ex) { marque = null; Console.WriteLine(" * Erreur de lecture dans la table Marque : " + ex.Message); } return(marque); }
/// <summary> /// Cette methode permet de supprimer une sous famille dans la table SousFamilles /// </summary> /// <param name="refsousfamille">l'identifiant de la sous famille à supprimer </param> /// <returns>le resultat de l'operation </returns> /// <remarks> /// la suppresion est faite si la sous famille à supprimer n'est liée à aucun article /// sinon la suppression sera refusé /// </remarks> public string SupprimerSousFamille(int refsousfamille) { string requete = "DELETE FROM SousFamilles WHERE RefSousFamille=@ref"; string resultat; InterfaceDB_Articles interArticle = new InterfaceDB_Articles(); List <Article> liste = interArticle.GetToutesArticlebySousFamille(refsousfamille); try { if (liste != null && liste.Count > 0) { resultat = "Echec de la suppresion de " + refsousfamille + " car cette sous famille est liée à des articles"; } else { /** * suppression de la sous famille * */ InterfaceDB.Commande_sqlite = new SQLiteCommand(requete, InterfaceDB.GetInstaneConnexion()); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@ref", refsousfamille); InterfaceDB.Commande_sqlite.ExecuteNonQuery(); resultat = " - Suppresion de " + refsousfamille + " dans la table Sous Famille"; } } catch (SQLiteException ex) { resultat = " * Erreur de suppression de " + refsousfamille + " dans la table Sous Famille : " + ex.Message; } return(resultat); }
/// <summary> /// Cette methode permet d'inserer une nouvelle sous famille dans la table SousFamilles /// </summary> /// <param name="nomFamille"> le nom de la famille </param> /// <param name="nom"> le nom de la sous famille </param> /// <returns>le resultat de l'operation </returns> /// <remarks> /// - On cherche la famille correspondant au nom de la famille /// - L'insertion est faite si la sous famille n'existait pas sinon rien /// - Et l'identifiant correspond au dernier identifiant dans de la table /// </remarks> public string InsererSousFamille(string nomFamille, string nom) { string resultat = " = Existe dejà dans la table SousFamille : " + nom; SousFamille sousfamille = GetSousFamille(nom); if (sousfamille == null) { int refSousFamille = InterfaceDB.DernierIdTable("SousFamilles", "RefSousFamille") + 1; InterfaceDB_Famille Interfamille = new InterfaceDB_Famille(); Famille famille = Interfamille.GetFamille(nomFamille); return(InsererSousFamille(refSousFamille, famille.RefFamille, nom)); } else { return(resultat); } }
/// <summary> /// Cette methode permet de supprimer un article dans la table Articles /// en fonction de son identifiant /// </summary> /// <param name="refarticle"> l'identifiant de l'article à supprimer </param> /// <returns>le resultat de l'opération </returns> public string SupprimerArticle(string refarticle) { string requete = "DELETE FROM Articles WHERE RefArticle=@ref"; string resultat; InterfaceDB.Commande_sqlite = new SQLiteCommand(requete, InterfaceDB.GetInstaneConnexion()); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@ref", refarticle); try { InterfaceDB.Commande_sqlite.ExecuteNonQuery(); resultat = " - Suppresion de " + refarticle + " dans la table Article"; } catch (SQLiteException ex) { resultat = " * Erreur de suppression de " + refarticle + " dans la table Article : " + ex.Message; } return(resultat); }
/// <summary> /// Cette methode permet d'avoir tous les articles appartenant à une sous famille /// </summary> /// <param name="refSousFamille">l'identifiant de la sous famille</param> /// <returns>une liste d'article </returns> public List <Article> GetToutesArticlebySousFamille(int refSousFamille) { List <Article> listarticle = null; string articleref, desc; int refsousfamille, refmarque, quan; double prix; InterfaceDB_Sous_Famille Intersousfamille = new InterfaceDB_Sous_Famille(); InterfaceDB_Marque InterMarque = new InterfaceDB_Marque(); RequeteDonneeArticle = "select * from Articles where RefSousFamille=@ref"; InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteDonneeArticle, InterfaceDB.GetInstaneConnexion()); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@ref", refSousFamille); try { Lecture_Donnee = InterfaceDB.Commande_sqlite.ExecuteReader(); listarticle = new List <Article>(); while (Lecture_Donnee.Read()) { articleref = Lecture_Donnee["RefArticle"].ToString(); desc = Lecture_Donnee["Description"].ToString(); refsousfamille = Int32.Parse(Lecture_Donnee["RefSousFamille"].ToString()); refmarque = Int32.Parse(Lecture_Donnee["RefMarque"].ToString()); prix = Double.Parse(Lecture_Donnee["PrixHT"].ToString()); quan = Int32.Parse(Lecture_Donnee["Quantite"].ToString()); SousFamille sousfamille = Intersousfamille.GetSousFamille(refsousfamille); Marque marque = InterMarque.GetMarque(refmarque); Article article = new Article(articleref, desc, sousfamille, marque, prix, quan); listarticle.Add(article); } } catch (SQLiteException ex) { listarticle = null; Console.WriteLine(" * Erreur de lecture dans la table Article : " + ex.Message); } return(listarticle); }
/// <summary> /// Cette methode permet de modifier les informations d'un article existant /// </summary> /// <param name="refArticle">le nouvel identifiant de l'article </param> /// <param name="description"> la nouvelle description de l'article </param> /// <param name="refsousfamille"> le nouvel identifiant de la sous famille de l'article </param> /// <param name="refmarque">le nouvel identifiant de la marque de l'artcile </param> /// <param name="prixht">le nouveau prix de l'article </param> /// <param name="quantite">la nouvelle quantité de l'article </param> /// <returns>le resutat de l'opération </returns> public string ModifierArticle(string refArticle, string description, int refsousfamille, int refmarque, double prixht, int quantite) { string resultat = ""; try { RequeteModifierArticle = "UPDATE Articles SET Description =@desc ,RefSousFamille =@refsous,RefMarque=@refmar,PrixHT=@prix,Quantite=@quan WHERE RefArticle = @ref"; InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteModifierArticle, InterfaceDB.GetInstaneConnexion()); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@desc", description); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@refsous", refsousfamille); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@refmar", refmarque); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@prix", prixht); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@quan", quantite); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@ref", refArticle); InterfaceDB.Commande_sqlite.ExecuteNonQuery(); resultat = " / Mise à jour dans la Table Artcile : " + refArticle; } catch (SQLiteException ex) { resultat = " * Erreur de mise à jour dans la Table Article de " + refArticle + " : " + ex.Message; } return(resultat); }
/// <summary> /// Cette methode permet d'inserer une nouvelle sous famille dans la table SousFamilles /// </summary> /// <param name="refSousFamille">l'identifiant de la sous famille </param> /// <param name="refFamille">l'identifiant de la famille</param> /// <param name="nom">le nom de la sous famille </param> /// <returns>le resultat de l'operation </returns> /// <remarks> /// L'insertion est faite si la sous famille n'existait pas sinon rien /// </remarks> public string InsererSousFamille(int refSousFamille, int refFamille, string nom) { string resultat = ""; SousFamille sousfamille1 = GetSousFamille(nom); SousFamille sousfamille2 = GetSousFamille(refSousFamille); if (sousfamille2 != null || sousfamille1 != null) { resultat = " = Existe dejà dans la table SousFamille " + refSousFamille; } else { try { RequeteInsererSousFamille = "INSERT INTO SousFamilles(RefSousFamille,RefFamille,Nom) VALUES" + "(@refsousfamille,@reffamille,@nom)"; InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteInsererSousFamille, InterfaceDB.GetInstaneConnexion()); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@refsousfamille", refSousFamille); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@reffamille", refFamille); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@nom", nom); InterfaceDB.Commande_sqlite.ExecuteNonQuery(); resultat = " + Insertion dans la Table Sous Famille : " + refSousFamille; } catch (SQLiteException ex) { resultat = " * Erreur d'insertion dans la Table Sous Famille de " + refSousFamille + " : " + ex.Message; } } return(resultat); }
/// <summary> /// Cette methode nous donne la liste de toutes les sous familles de la table SousFamilles appartenant à une famille /// </summary> /// <param name="refFamille"></param> /// <returns>liste des sous familles</returns> public List <SousFamille> GetToutesSousFamillebyFamille(int refFamille) { List <SousFamille> listsousfamille = null; SousFamille sousfamille = null; int reffamille; int refsousfamille; string nomsousfamille; InterfaceDB_Famille interFamille = new InterfaceDB_Famille(); RequeteDonneesSousFamilles = "select * from SousFamilles where RefFamille = @ref"; InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteDonneesSousFamilles, InterfaceDB.GetInstaneConnexion()); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@ref", refFamille); try { SQLiteDataReader Lecture_donnee = InterfaceDB.Commande_sqlite.ExecuteReader(); listsousfamille = new List <SousFamille>(); while (Lecture_donnee.Read()) { refsousfamille = Int32.Parse(Lecture_donnee["RefSousFamille"].ToString()); reffamille = Int32.Parse(Lecture_donnee["RefFamille"].ToString()); nomsousfamille = Lecture_donnee["Nom"].ToString(); sousfamille = new SousFamille(refsousfamille, interFamille.GetFamille(reffamille), nomsousfamille); listsousfamille.Add(sousfamille); } } catch (SQLiteException ex) { listsousfamille = null; Console.WriteLine(" * Erreur de lecture dans la table Famille: " + ex.Message); } return(listsousfamille); }
/// <summary> /// Cette methode permet d'avoir toutes les informations d'une sous famille en fonction de son nom /// </summary> /// <param name="nom"> le nom de la sous famille </param> /// <returns>la sous famille correspondante </returns> public SousFamille GetSousFamille(string nom) { SousFamille sousfamille = null; int reffamille; int refsousfamille; string nomsousfamille; InterfaceDB_Famille interFamille = new InterfaceDB_Famille(); RequeteDonneesSousFamilles = "select * from SousFamilles where SousFamilles.Nom like @nom"; InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteDonneesSousFamilles, InterfaceDB.GetInstaneConnexion()); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@nom", nom); try { Lecture_Donnee = InterfaceDB.Commande_sqlite.ExecuteReader(); while (Lecture_Donnee.Read()) { refsousfamille = Int32.Parse(Lecture_Donnee["RefSousFamille"].ToString()); reffamille = Int32.Parse(Lecture_Donnee["RefFamille"].ToString()); nomsousfamille = Lecture_Donnee["Nom"].ToString(); sousfamille = new SousFamille(refsousfamille, interFamille.GetFamille(reffamille), nomsousfamille); } } catch (SQLiteException ex) { sousfamille = null; Console.WriteLine(" * Erreur de lecture dans la table Sous Famille : " + ex.Message); } return(sousfamille); }
/// <summary> /// Cette methode permet de modifier les données d'une sous famille dans la table SousFamilles /// </summary> /// <param name="refsousfamille"> l'identifiant de la sous famille à modifier</param> /// <param name="refnouvellefamile"> l'identifiant de la nouvelle famille </param> /// <param name="nouveaunomsousfamille"> le nouveau nom de la sous famille </param> /// <returns>le resultat de l'operation </returns> public string ModifierSousFamille(int refsousfamille, int refnouvellefamile, string nouveaunomsousfamille) { string resultat = ""; try { RequeteModifierSousFamille = "UPDATE SousFamilles SET Nom = @nouveaunom , RefFamille =@nouvellefamille WHERE RefSousFamille = @ref"; InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteModifierSousFamille, InterfaceDB.GetInstaneConnexion()); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@nouveaunom", nouveaunomsousfamille); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@nouvellefamille", refnouvellefamile); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@ref", refsousfamille); InterfaceDB.Commande_sqlite.ExecuteNonQuery(); resultat = " / Mise à jour dans la Table Sous Famille de " + refsousfamille + " : " + refsousfamille; } catch (SQLiteException ex) { resultat = " * Erreur de mise à jour dans la Table Sous Famille de " + refsousfamille + " : " + ex.Message; } return(resultat); }
/// <summary> /// Cette methode permet d'inserer une nouvelle marque dans la table Marques /// </summary> /// <param name="nom"> le nom de la marque </param> /// <returns>le resultat de l'operation </returns> /// <remarks> /// L'identifiant est données par rapport au dernier identifiant de la table Marques /// </remarks> public string InsererMarque(string nom) { int refmarque = InterfaceDB.DernierIdTable("Marques", "RefMarque") + 1; return(InsererMarque(refmarque, nom)); }
/// <summary> /// Cette methode permet d'inserer une nouvelle marque dans la table Marques /// </summary> /// <param name="refmarque"> l'identifiant de la marque </param> /// <param name="nom"> le nom de la marque </param> /// <returns></returns> /// <remarks> /// L'insertion ne sera faite que si la marque n'existe pas /// </remarks> public string InsererMarque(int refmarque, string nom) { string resultat = ""; Marque marque = GetMarque(nom); Marque marque2 = GetMarque(refmarque); if (marque2 != null || marque != null) { resultat = " = Existe dejà dans la table Marque " + refmarque; } else { try { RequeteInsererMarque = "INSERT INTO Marques(RefMarque,Nom) VALUES" + "(@refmarque,@nom)"; InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteInsererMarque, InterfaceDB.GetInstaneConnexion()); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@refmarque", refmarque); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@nom", nom); InterfaceDB.Commande_sqlite.ExecuteNonQuery(); resultat = " + Insertion dans la Table Marque : " + refmarque; } catch (SQLiteException ex) { resultat = " * Erreur d'insertion dans la Table Marque de " + refmarque + " : " + ex.Message; } } return(resultat); }
/// <summary> /// Cette methode permet de modifier les données d'une marque dans la table Marques /// </summary> /// <param name="refmarque">l'identifiant de la marque </param> /// <param name="nouveaunommarque">le nouveau nom de la marque </param> /// <returns>le resultat de l'operation </returns> public string ModifierMarque(int refmarque, string nouveaunommarque) { string resultat = ""; try { RequeteModifierMarque = "UPDATE Marques SET Nom = @nouveaunom WHERE RefMarque = @ref"; InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteModifierMarque, InterfaceDB.GetInstaneConnexion()); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@nouveaunom", nouveaunommarque); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@ref", refmarque); InterfaceDB.Commande_sqlite.ExecuteNonQuery(); resultat = " / Mise à jour dans la Table Marque : " + refmarque; } catch (SQLiteException ex) { resultat = " * Erreur de mise à jour dans la Table Marque de " + refmarque + " : " + ex.Message; } return(resultat); }
/// <summary> /// Cette methode permet d'inserer une nouvelle famille dans la table Famille /// </summary> /// <param name="nom">le nom de la famille </param> /// <returns>le resulat de l'operation </returns> /// <remarks> /// Elle donne un identifiant qui est le dernier identifiant de table Familles à la nouvelle famille /// </remarks> public string InsererFamille(string nom) { int refFamille = InterfaceDB.DernierIdTable("Familles", "RefFamille") + 1; return(InsererFamille(refFamille, nom)); }
/// <summary> /// cette methode d'insérer un nouveau article dans la table Articles de la base de données /// </summary> /// <param name="refArticle">l'identifiant de l'article </param> /// <param name="description"> la description de l'article </param> /// <param name="refsousfamille"> l'identifiant de la sous famille de l'article </param> /// <param name="refmarque">l'identifiant de la marque de l'artcile </param> /// <param name="prixht">le prix de l'article </param> /// <param name="quantite">la quantité de l'article </param> /// <returns>le resultat de l'opération </returns> /// <remarks> /// Elle vérifie si l'article existe ou pas avant l'insertion dans la table Articles et gère les erreurs qui peuvent survenir /// </remarks> public string InsererArticle(string refArticle, string description, int refsousfamille , int refmarque, double prixht, int quantite) { string resultat = ""; Article article = GetArticle(refArticle); if (article != null) { resultat = " = Existe dejà dans la table Article " + refArticle; } else { try { RequeteInsererArticle = "INSERT INTO Articles(RefArticle,Description,RefSousFamille,RefMarque,PrixHT,Quantite) VALUES" + "(@refArticle,@description,@refsousfamille,@refmarque,@prixht,@quantite)"; InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteInsererArticle, InterfaceDB.GetInstaneConnexion()); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@refArticle", refArticle); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@description", description); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@refsousfamille", refsousfamille); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@refmarque", refmarque); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@prixht", prixht); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@quantite", quantite); InterfaceDB.Commande_sqlite.ExecuteNonQuery(); resultat = " + Insertion dans la Table Article : " + refArticle; } catch (SQLiteException ex) { resultat = " * Erreur d'insertion dans la Table Article de " + refArticle + " " + ex.Message; } } return(resultat); }
/// <summary> /// Cette methode permet de modifier les données d'une famille dans la table Famille /// </summary> /// <param name="reffamille"> l'identifiant de la famille à modifier </param> /// <param name="nouveaunomfamille">le nouveau nom de la famille </param> /// <returns>le resultat de l'opération </returns> /// <remarks> /// la mise à jour est faite si la famille existe /// </remarks> public string ModifierFamille(int reffamille, string nouveaunomfamille) { string resultat = ""; try { Famille famille = GetFamille(reffamille); if (famille == null) { resultat = " * Pas de mise à jour car n'existe pas dans la table Famille " + reffamille; } else { RequeteModifierFamille = "UPDATE Familles SET Nom = @nouveaunom WHERE RefFamille = @ref"; InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteModifierFamille, InterfaceDB.GetInstaneConnexion()); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@nouveaunom", nouveaunomfamille); InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@ref", reffamille); InterfaceDB.Commande_sqlite.ExecuteNonQuery(); resultat = " / Mise à jour dans la Table Marque de " + reffamille + " : " + reffamille; } } catch (SQLiteException ex) { resultat = " * Erreur de mise à jour dans la Table Marque de " + reffamille + " : " + ex.Message; } return(resultat); }