/// <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 toutes les sous-familles de la famille en entrée /// </summary> /// <param name="Family"></param> /// <returns></returns> public static SubFamily[] GetAllSubFamilies(Family Family) { // DataTable récupérant les données de la requete DataTable DataTableToFill = new DataTable(); // Récupération des données using (var Connection = new SQLiteConnection("Data Source = Bacchus.SQLite ;Version=3;New=False;Compress=True;")) { using (var Command = new SQLiteCommand("SELECT * FROM SousFamilles WHERE RefFamille = " + Family.RefFamily + ";")) { try { // Execution de la requete Command.Connection = Connection; Command.Connection.Open(); SQLiteDataAdapter adp = new SQLiteDataAdapter(Command); adp.Fill(DataTableToFill); Connection.Close(); } catch { Connection.Close(); } } } // Création de la liste à retourner (de la taille du résultat de la requete) SubFamily[] SubFamilyTableToReturn = new SubFamily[DataTableToFill.Rows.Count]; // Création des SubFamilies à partir de la DataTable et ajout à la liste for (int currentSubFamilyIndex = 0; currentSubFamilyIndex < DataTableToFill.Rows.Count; currentSubFamilyIndex++) { // Création d'une SousFamille vide SubFamily TmpSubFamilyToAdd = new SubFamily(); // Ajout des paramètres de la SousFamille TmpSubFamilyToAdd.RefSubFamily = (int)DataTableToFill.Rows[currentSubFamilyIndex][1]; TmpSubFamilyToAdd.RefFamily = FamilyDAO.GetFamilyById((int)DataTableToFill.Rows[currentSubFamilyIndex][0]); TmpSubFamilyToAdd.NameSubFamily = DataTableToFill.Rows[currentSubFamilyIndex][2].ToString(); // Ajout de la famille à la liste à retourner SubFamilyTableToReturn.SetValue(TmpSubFamilyToAdd, currentSubFamilyIndex); } return(SubFamilyTableToReturn); }