// But : Permet d'ajouter un Livrable
        // Paramètres : Objet de connexion SQLite
        public static void AjouterLivrable(SQLiteConnection maConnexion)
        {
            // dernier id livrable
            long lastId = ChercherDernierIdLivrable(maConnexion) + 1;

            // Nature du livrable
            string natureLivrable = "";

            do
            {
                Console.WriteLine("Entrer la nature du livrable que vous souhaitez ajouter : ");
                natureLivrable = Console.ReadLine();
            } while (natureLivrable.Length < 1);
            // Création de l'objet Livrable
            Livrable l = new Livrable((int)lastId, natureLivrable);

            // On appelle la fonction pour ajouter un livrable en BD
            AjouterLivrableBD(maConnexion, l);
        }
        // But : Permet de créer une liste des livrables rendus pour un projet
        // Paramètres : Objet de connexion SQLite et un projet_id
        // Retourne : Une liste contenant les livrables associés à un projet
        public static ArrayList CreerListeLivrables(int projet_id, SQLiteConnection maConnexion)
        {
            // Initialisation de la liste
            ArrayList listeL = new ArrayList();

            // Requete préparée pour recup tous les livrable_id qui sont associés au projet_id donné
            var cmd = new SQLiteCommand(maConnexion);

            cmd.CommandText = "SELECT * FROM rendu WHERE projet_id = @projet_id";

            cmd.Parameters.AddWithValue("@projet_id", projet_id);
            cmd.Prepare();

            SQLiteDataReader reader = cmd.ExecuteReader();

            // Tant qu'il y a un livrable_id à lire
            while (reader.Read())
            {
                // On recup les donnees du livrable
                var cmdLivrable = new SQLiteCommand(maConnexion);
                cmdLivrable.CommandText = "SELECT * FROM livrable WHERE livrable_id = @livrable_id";

                cmdLivrable.Parameters.AddWithValue("@livrable_id", (int)reader["livrable_id"]);
                cmdLivrable.Prepare();

                SQLiteDataReader reader2 = cmdLivrable.ExecuteReader();
                // Attributs
                DateTime rendu_date = DateTime.Parse((string)reader["rendu_date"]);
                double   note       = (double)reader["rendu_note"];

                // On cree les livrables
                while (reader2.Read())
                {
                    // Création de l'objet livrable
                    Livrable livrable = new Livrable((int)reader2["livrable_id"], (string)reader2["livrable_nature"], rendu_date, note);
                    // On ajoute l'objet à la liste
                    listeL.Add(livrable);
                }
            }
            // On retourne la liste
            return(listeL);
        }
        // But : Permet d'ajouter un livrable en BD
        // Paramètres : Objet de connexion SQLite, un objet Livrable
        public static void AjouterLivrableBD(SQLiteConnection maConnexion, Livrable l)
        {
            // On vérifie que le livrable n'a pas déjà été ajouté en BD
            var cmd = new SQLiteCommand(maConnexion);

            cmd.CommandText = "SELECT * FROM livrable WHERE livrable_nature = @livrable_nature";
            cmd.Parameters.AddWithValue("@livrable_nature", l.NatureLivrable);
            cmd.Prepare();
            SQLiteDataReader reader = cmd.ExecuteReader();

            bool existe = false;

            while (reader.Read())
            {
                existe = true;
            }
            reader.Close();
            if (existe)
            {
                Console.WriteLine("Ajout impossible, ce livrable existe déjà");
            }
            else // le livrable n'existe pas
            {
                // Insertion de données dans la table Livrable
                cmd             = new SQLiteCommand(maConnexion);
                cmd.CommandText = "INSERT INTO livrable VALUES (@idL, @nomL)";
                cmd.Parameters.AddWithValue("@idL", l.IdLivrable);
                cmd.Parameters.AddWithValue("@nomL", l.NatureLivrable);
                cmd.Prepare();
                if (cmd.ExecuteNonQuery() == 1)
                {
                    Console.WriteLine("Insertion correctement effectuée");
                }
                else
                {
                    Console.WriteLine("Une erreur est survenue dans l'insertion");
                }
            }
        }