/// <summary> /// Retourne tous les articles de la base de données /// </summary> /// <returns></returns> public static Article[] GetAllArticles() { //Nombre d'articles dans la base de donnée int nbArticle = ArticleDAO.NbArticles(); //Tableau d'artiles à retourner Article[] listToReturn = new Article[nbArticle]; using (var Connection = new SQLiteConnection("Data Source = Bacchus.SQLite ;Version=3;New=False;Compress=True;")) { using (var Command = new SQLiteCommand("SELECT * FROM Articles;")) { try { Command.Connection = Connection; Command.Connection.Open(); using (SQLiteDataReader Reader = Command.ExecuteReader()) { for (int currentArticleIndex = 0; currentArticleIndex < nbArticle; currentArticleIndex++) { // Lecture de la ligne Reader.Read(); // Création d'un article Article ArticleToAdd = new Article(); // Ajout des paramètres ArticleToAdd.RefArticle = Reader[0].ToString(); ArticleToAdd.Description = Reader[1].ToString(); ArticleToAdd.RefSubFamily = SubFamilyDAO.GetSubFamilyById((int)Reader[2]); ArticleToAdd.RefBrand = BrandDAO.GetBrandById((int)Reader[3]); ArticleToAdd.PriceHT = float.Parse(Reader[4].ToString()); ArticleToAdd.Quantity = (int)Reader[5]; // Ajout de l'article à la liste à retourner listToReturn.SetValue(ArticleToAdd, currentArticleIndex); } } Connection.Close(); } catch (Exception ExceptionCaught) { //En cas d'erreur, retourne null listToReturn = null; MessageBox.Show("Echec de la récupération des données de la table Article \n" + ExceptionCaught.Message, ExceptionCaught.GetType().ToString()); Connection.Close(); } } } return(listToReturn); }
/// <summary> /// Retourne toutes les sous-familles de la base de donnée /// </summary> /// <returns></returns> public static SubFamily[] GetAllSubFamilies() { //The number of subFamily int nbSubFamily = SubFamilyDAO.NbSubFamilies(); //The table to return SubFamily[] listToReturn = new SubFamily[nbSubFamily]; using (var Connection = new SQLiteConnection("Data Source = Bacchus.SQLite ;Version=3;New=False;Compress=True;")) { using (var Command = new SQLiteCommand("SELECT * FROM SousFamilles;")) { try { // Connection Command.Connection = Connection; Command.Connection.Open(); using (SQLiteDataReader Reader = Command.ExecuteReader()) { for (int currentSubFamilyIndex = 0; currentSubFamilyIndex < nbSubFamily; currentSubFamilyIndex++) { // Lecture de la ligne Reader.Read(); // Creation de la famille SubFamily SubFamilyToAdd = new SubFamily(); // Ajout des paramètres SubFamilyToAdd.RefSubFamily = (int)Reader[0]; SubFamilyToAdd.RefFamily = FamilyDAO.GetFamilyById((int)Reader[1]); SubFamilyToAdd.NameSubFamily = Reader[2].ToString(); // Ajout de la sous-famille à la liste à retourner listToReturn.SetValue(SubFamilyToAdd, currentSubFamilyIndex); } } Connection.Close(); } catch (Exception ExceptionCaught) { // Rtourne null en cas d'erreur listToReturn = null; MessageBox.Show("Echec de la récupération des données de la table SousFamille \n" + ExceptionCaught.Message, ExceptionCaught.GetType().ToString()); Connection.Close(); } } } return(listToReturn); }
/// <summary> /// Retourne l'article correspondant à la référence passée en paramètre /// </summary> /// <param name="ArticleRef"></param> /// <returns></returns> public static Article GetArticleById(String ArticleRef) { Article ArticleToReturn = null; using (var Connection = new SQLiteConnection("Data Source = Bacchus.SQLite ;Version=3;New=False;Compress=True;")) { using (var Command = new SQLiteCommand("SELECT * FROM Articles WHERE RefArticle = '" + ArticleRef + "';")) { try { Command.Connection = Connection; Command.Connection.Open(); using (SQLiteDataReader Reader = Command.ExecuteReader()) { // Lecture de la ligne Reader.Read(); // Creation de l'article à retourner ArticleToReturn = new Article(); // Ajout des paramètres ArticleToReturn.RefArticle = Reader[0].ToString(); ArticleToReturn.Description = Reader[1].ToString(); ArticleToReturn.RefSubFamily = SubFamilyDAO.GetSubFamilyById((int)Reader[2]); ArticleToReturn.RefBrand = BrandDAO.GetBrandById((int)Reader[3]); ArticleToReturn.PriceHT = float.Parse(Reader[4].ToString()); ArticleToReturn.Quantity = (int)Reader[5]; } Connection.Close(); } // Dans le cas où l'article n'existe pas catch (InvalidOperationException) { ArticleToReturn = null; Connection.Close(); } catch (Exception ExceptionCaught) { ArticleToReturn = null; MessageBox.Show("Echec de la récupération de l'article " + ArticleRef + " \n" + ExceptionCaught.Message, ExceptionCaught.GetType().ToString()); Connection.Close(); } } } return(ArticleToReturn); }