private void b_ajouterM_Click(object sender, EventArgs e)
        {
            try
            {
                if (t_nom_m.Text != "" && t_desc_m.Text != "")
                {
                    // On créé un objet de matériel qui sera utilisé pour l'ajout de celui-ci dans la BDD
                    Materiel unMateriel = null;
                    int idMateriel = 1;
                    unMateriel = new Materiel(idMateriel, t_nom_m.Text, t_desc_m.Text, 0, num_achHT_m.Value, 0, 0, num_vent_m.Value, CollectionFournisseur[comboBox_four_m.SelectedIndex].IdFournisseurs, CollectionCategorie[comboBox_cat_m.SelectedIndex].IdCategorie);

                    // On ajoute le matériel
                    M_materiel.ajouterMateriel(unMateriel);
                    Close();
                }
                else
                {
                    MessageBox.Show("Veuillez remplir tous les champs.");
                }
            }
            catch
            {
                MessageBox.Show("Veuillez compléter tous les champs.");
                Close();
            }
        }
 private void b_ajouterM_Click(object sender, EventArgs e)
 {
     try
     {
         if (t_nom_m.Text != "" && t_desc_m.Text != "")
         {
             Materiel unMateriel = null;
             unMateriel = new Materiel(idMaterielCourant, t_nom_m.Text, t_desc_m.Text, 0, num_achHT_m.Value, 0, 0, num_vent_m.Value, CollectionFournisseur[comboBox_four_m.SelectedIndex].IdFournisseurs, CollectionCategorie[comboBox_four_m.SelectedIndex].IdCategorie);
             M_materiel.modifierMateriel(unMateriel);
             Close();
         }
         else
         {
             MessageBox.Show("Veuillez remplir tous les champs.");
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("Erreur: " + ex.Message);
         Close();
     }
 }
        public static void modifierMateriel(Materiel unMateriel)
        {
            try
            {
                // Ouverture de la connexion
                M_connexion.Gestion.Open();

                // Requête SQL
                string reqSQL = "UPDATE materiel SET nomMateriel = ?, designationMateriel = ?, prixUnitAchMaterielHT = ?, prixUnitAchMaterielTTC = ?, prixUnitVentMateriel = ?, idFournisseurs = ?, idCategorie = ? WHERE idMateriel = ?";

                // Execution de la requête
                MySqlCommand Command1 = new MySqlCommand(reqSQL, M_connexion.Gestion);

                // Création des paramètres correspondants aux ?
                MySqlParameter Para1 = Command1.Parameters.Add("@nomMateriel", MySqlDbType.VarChar);
                MySqlParameter Para2 = Command1.Parameters.Add("@designationMateriel", MySqlDbType.VarChar);
                MySqlParameter Para3 = Command1.Parameters.Add("@prixUnitAchMaterielHT", MySqlDbType.Decimal);
                MySqlParameter Para4 = Command1.Parameters.Add("@prixUnitAchMaterielTTC", MySqlDbType.Decimal);
                MySqlParameter Para5 = Command1.Parameters.Add("@prixUnitVentMateriel", MySqlDbType.Decimal);
                MySqlParameter Para6 = Command1.Parameters.Add("@idFournisseurs", MySqlDbType.Int16);
                MySqlParameter Para7 = Command1.Parameters.Add("@idCategorie", MySqlDbType.Int16);
                MySqlParameter Para8 = Command1.Parameters.Add("@idMateriel", MySqlDbType.Int16);

                // Affectation des valeurs
                // Le param1 est auto-incrémenté
                Para1.Value = unMateriel.NomMateriel;
                Para2.Value = unMateriel.DesignationMateriel;
                Para3.Value = unMateriel.PrixUnitAchMaterielHT1;
                Para4.Value = unMateriel.PrixUnitAchMaterielTTC1;
                Para5.Value = unMateriel.PrixUnitVentMateriel;
                Para6.Value = unMateriel.IdFournisseur;
                Para7.Value = unMateriel.IdCategorie;
                Para8.Value = unMateriel.IdMateriel;

                Command1.ExecuteNonQuery();
                M_connexion.Gestion.Close();
                MessageBox.Show("Matériel modifié.");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erreur :" + ex.Message);
            }
        }
        public static void SupprimerMateriel(Materiel unMateriel)
        {
            try
            {
                // Ouverture de la connexion
                M_connexion.Gestion.Open();

                // Requête SQL
                string reqSQL = "DELETE FROM materiel WHERE idMateriel = ?";

                // Execution de la requête
                MySqlCommand Command1 = new MySqlCommand(reqSQL, M_connexion.Gestion);

                // Création des paramètres correspondants aux ?
                MySqlParameter Param1 = Command1.Parameters.Add("@idMateriel", MySqlDbType.Int16);

                // Affectation des valeurs
                Param1.Value = unMateriel.IdMateriel;

                Command1.ExecuteNonQuery();
                M_connexion.Gestion.Close();
                MessageBox.Show("Produit supprimé.");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erreur :" + ex.Message);
            }
        }
        public static Collection<Materiel> getMaterielColl()
        {
            Collection<Materiel> CollectionMateriel = new Collection<Materiel>();

            try
            {
                CollectionMateriel.Clear();

                // Ouverture de la connexion
                M_connexion.Gestion.Open()
                    ;
                // Requête SQL
                String ReqSQL = "SELECT * FROM Materiel";

                // Déclaration du curseur et execution de la requête
                MySqlDataReader MonReaderMateriel;
                MySqlCommand Command1 = new MySqlCommand(ReqSQL, M_connexion.Gestion);
                MonReaderMateriel = Command1.ExecuteReader();

                Materiel nouveauMateriel;

                while (MonReaderMateriel.Read())
                {
                    nouveauMateriel = new Materiel(int.Parse(MonReaderMateriel[0].ToString()), MonReaderMateriel[1].ToString(), MonReaderMateriel[2].ToString(), int.Parse(MonReaderMateriel[3].ToString()), decimal.Parse(MonReaderMateriel[4].ToString()), decimal.Parse(MonReaderMateriel[5].ToString()), decimal.Parse(MonReaderMateriel[6].ToString()), decimal.Parse(MonReaderMateriel[7].ToString()), int.Parse(MonReaderMateriel[8].ToString()), int.Parse(MonReaderMateriel[9].ToString()));
                    CollectionMateriel.Add(nouveauMateriel);
                }
                // Fermeture de la connexion
                M_connexion.Gestion.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erreur :" + ex.Message);
            }

            return CollectionMateriel;
        }
        public static void ajouterMateriel(Materiel unMateriel)
        {
            try
            {
                M_connexion.Gestion.Open();

                string requete = "SELECT count(*) FROM Materiel WHERE nomMateriel = ?";
                MySqlCommand maCommande = new MySqlCommand(requete, M_connexion.Gestion);

                MySqlParameter Param1 = maCommande.Parameters.Add("@nomMateriel", MySqlDbType.VarChar);
                Param1.Value = unMateriel.NomMateriel;

                int nbMateriel = Convert.ToInt16(maCommande.ExecuteScalar());
                
                if (nbMateriel <= 0)
                {
                    try
                    {
                        // Requête SQL
                        string reqSQL = "INSERT INTO Materiel VALUES (NULL,?,?,?,?,?,?,?,?,?)";

                        // Execution de la requête
                        MySqlCommand Command1 = new MySqlCommand(reqSQL, M_connexion.Gestion);

                        // Création des paramètres correspondants aux ?
                        MySqlParameter Para1 = Command1.Parameters.Add("@nomMateriel", MySqlDbType.VarChar);
                        MySqlParameter Para2 = Command1.Parameters.Add("@designationMateriel", MySqlDbType.VarChar);
                        MySqlParameter Para3 = Command1.Parameters.Add("@qteMateriel", MySqlDbType.Int16);
                        MySqlParameter Para4 = Command1.Parameters.Add("@prixUnitAchMaterielHT", MySqlDbType.Decimal);
                        MySqlParameter Para5 = Command1.Parameters.Add("@prixUnitAchMaterielTVA", MySqlDbType.Decimal);
                        MySqlParameter Para6 = Command1.Parameters.Add("@prixUnitAchMaterielTTC", MySqlDbType.Decimal);
                        MySqlParameter Para7 = Command1.Parameters.Add("@prixUnitVentMateriel", MySqlDbType.Decimal);
                        MySqlParameter Para8 = Command1.Parameters.Add("@idFournisseurs", MySqlDbType.Int16);
                        MySqlParameter Para9 = Command1.Parameters.Add("@idCategorie", MySqlDbType.Int16);

                        // Affectation des valeurs
                        Para1.Value = unMateriel.NomMateriel;
                        Para2.Value = unMateriel.DesignationMateriel;
                        Para3.Value = unMateriel.QteMateriel;
                        Para4.Value = unMateriel.PrixUnitAchMaterielHT1;
                        Para5.Value = unMateriel.PrixUnitAchMaterielTVA1;
                        Para6.Value = unMateriel.PrixUnitAchMaterielTTC1;
                        Para7.Value = unMateriel.PrixUnitVentMateriel;
                        Para8.Value = unMateriel.IdFournisseur;
                        Para9.Value = unMateriel.IdCategorie;

                        Command1.ExecuteNonQuery();
                        MessageBox.Show("Matériel ajouté.");
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Erreur :" + ex.Message);
                    }
                    finally
                    {
                        M_connexion.Gestion.Close();
                    }
                }
                else
                {
                    throw new Exception("Le matériel existe déjà.");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erreur :" + ex.Message);
            }
            finally
            {
                M_connexion.Gestion.Close();
            }
        }
 private void affecterValeurs(Materiel unMateriel)
 {
     Materiel leMateriel = unMateriel;
     idMaterielCourant = leMateriel.IdMateriel;
     t_nom_m.Text = leMateriel.NomMateriel;
     t_desc_m.Text = leMateriel.DesignationMateriel;
     num_achHT_m.Value = leMateriel.PrixUnitAchMaterielHT1;
     num_vent_m.Value = leMateriel.PrixUnitVentMateriel;
 }