private void enregistrer() { //Enregistrer dans les tables les modifications et / ou ajouts foreach (DataGridViewRow row in dataGridView1.Rows) { String nomColonne, nomLigne; // Enregistre le nombre d'heures dans la classe Categorie : nomLigne = row.Cells[0].Value.ToString(); categorie categorie = Requetes.retrouveCategorieViaTexte(nomLigne); categorie.nbrHeureDues = Convert.ToInt32(row.Cells[1].Value); // Enregistre les ratios entre catégories et type de cours dans la classe equivalent_td for (int i = 2; i < dataGridView1.Columns.Count; i++) { nomColonne = dataGridView1.Columns[i].HeaderText; nomLigne = row.Cells[0].Value.ToString(); type_cours typC = Requetes.retrouveTypeDeCoursViaTexte(nomColonne); categorie cat = Requetes.retrouveCategorieViaTexte(nomLigne); equivalent_td equivalent = new equivalent_td(); if (row.Cells[i].Value.ToString().Contains('.')) // Format décimal avec un point comme virgule (a.aaaa) { equivalent.ratio = Math.Round(Convert.ToDouble(row.Cells[i].Value.ToString().Replace('.', ',')), 6); } else if (row.Cells[i].Value.ToString().Contains('/')) // Format décimal sous forme de fraction (a/b) { String[] data = row.Cells[i].Value.ToString().Split('/'); equivalent.ratio = Math.Round((Convert.ToDouble(data[0]) / Convert.ToDouble(data[1])), 6); } else // Format décimal classique avec une virgule (a,aaaa) { equivalent.ratio = Math.Round(Convert.ToDouble(row.Cells[i].Value), 6); } equivalent.id_categ = cat.id; equivalent.id_type_cours = typC.id; equivalent.categorie = cat; equivalent.type_cours = typC; // Ajoute ou met à jour Requetes.ajouterEquivalentTD(equivalent); } } // Sauvegarde les modifications Requetes.enregistreLaBDD(); Actualiser(); }