/// <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 familles de la base de données /// </summary> /// <returns></returns> public static Family[] GetAllFamilies() { // Nombre de familles dans la base de données int NbFamilies = FamilyDAO.NbFamilies(); // Tableau de familles à retourner Family[] listToReturn = new Family[NbFamilies]; using (var Connection = new SQLiteConnection("Data Source = Bacchus.SQLite ;Version=3;New=False;Compress=True;")) { using (var Command = new SQLiteCommand("SELECT * FROM Familles;")) { try { // Connection Command.Connection = Connection; Command.Connection.Open(); using (SQLiteDataReader Reader = Command.ExecuteReader()) { for (int CurrentFamilyIndex = 0; CurrentFamilyIndex < NbFamilies; CurrentFamilyIndex++) { // Lecture de la ligne Reader.Read(); // Création d'une nouvelle famille Family FamilyToAdd = new Family(); // Ajout des paramètres FamilyToAdd.RefFamily = (int)Reader[0]; FamilyToAdd.NameFamily = Reader[1].ToString(); // Ajout de la famille au tableau listToReturn.SetValue(FamilyToAdd, CurrentFamilyIndex); } } Connection.Close(); } catch (Exception ExceptionCaught) { // Retourne null en cas d'erreur listToReturn = null; MessageBox.Show("Echec de la récupération des données de la table Familles \n" + ExceptionCaught.Message, ExceptionCaught.GetType().ToString()); Connection.Close(); } } } return(listToReturn); }
/// <summary> /// Retourne la sous-famille correspondant à l'id passé en paramètre /// </summary> /// <param name="SubFamilyRef"></param> /// <returns></returns> public static SubFamily GetSubFamilyById(int SubFamilyRef) { // Sous famille à retourner SubFamily SubFamilyToReturn = null; using (var Connection = new SQLiteConnection("Data Source = Bacchus.SQLite ;Version=3;New=False;Compress=True;")) { using (var Command = new SQLiteCommand("SELECT * FROM SousFamilles WHERE RefSousFamille = " + SubFamilyRef + ";")) { try { // Connection Command.Connection = Connection; Command.Connection.Open(); using (SQLiteDataReader Reader = Command.ExecuteReader()) { // Lecture de la ligne Reader.Read(); // Création de la sousfamille SubFamilyToReturn = new SubFamily(); // Ajout des paramètres SubFamilyToReturn.RefSubFamily = (int)Reader[0]; SubFamilyToReturn.RefFamily = FamilyDAO.GetFamilyById((int)Reader[1]); SubFamilyToReturn.NameSubFamily = Reader[2].ToString(); } Connection.Close(); } // dans le cas où il n'existe pas de sous familles avec cet id catch (InvalidOperationException) { SubFamilyToReturn = null; Connection.Close(); } catch (Exception ExceptionCaught) { // Retourne null en cas d'erreur SubFamilyToReturn = null; MessageBox.Show("Oui comme un con je suis passé là"); MessageBox.Show("Echec de la récupération de la SousFamille " + SubFamilyRef + " \n" + ExceptionCaught.Message, ExceptionCaught.GetType().ToString()); Connection.Close(); } } } return(SubFamilyToReturn); }
/// <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); }