Bonjour,

C'est mon premier programme en C# et Visual Studio.
J'ai une Form pour la gestion des inscriptions d'une école, avec deux DGV. La première DGV contient la liste des cours suivis par un étudiant, la 2è DGV les cours auxquels il peut encore s'inscrire. Si double click sur un cours suivi (DGV1), il s'efface et vient s'ajouter aux cours non suivis (DGV2). Inversément, double click sur cours non suivi (DGV2) et le cours va s'effacer et s'ajouter dans le DGV1. Tout fonctionne, sauf que un cours que je viens d'effacer (et je vois qu'il n'y est plus), je ne peux pas le rajouter à nouveau. Je reçois le message qu'il existe déjà. C'est comme si le delete ne fonctionne que si je ferme le Form. J'ai tout essayé (AcceptChanges, UpdateAll....) sans succès.
Merci de votre aide.

Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// ajouter un cours aux inscriptions, en cliquant sur un cours non suivi
        private void notCoursDetudDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            DataGridViewRow row = notCoursDetudDataGridView.Rows[e.RowIndex];
            int num = Convert.ToInt32(row.Cells[0].Value);
            DataRow nvEnreg;
            nvEnreg = ecoleDataSet.Inscription.NewInscriptionRow();
            nvEnreg["numCours"] = num;
            nvEnreg["numEtud"] = textBoxIdEtud.Text;
            nvEnreg["année"] = DateTime.Now.Year.ToString();
            nvEnreg["nom"] = textBoxNom.Text;
            nvEnreg["prénom"] = textBoxPrenom.Text;
            ecoleDataSet.Inscription.Rows.Add(nvEnreg);               
            inscriptionTableAdapter.Update(ecoleDataSet.Inscription);
            Console.WriteLine();
            this.coursTableAdapter.CoursDetud(this.ecoleDataSet.Cours, numero);
            this.notCoursDetudTableAdapter.notCoursDetud(this.ecoleDataSet.notCoursDetud, numero);
            Console.WriteLine(nvEnreg.RowState);
        }                       
        //enlever une inscription, en cliquant sur un cours suivi
        private void coursDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            DataGridViewRow row = coursDataGridView.Rows[e.RowIndex];
            DataRow nvEnreg;
            int ncours = Convert.ToInt32(row.Cells[0].Value);
            int netud = Convert.ToInt32(textBoxIdEtud.Text);
            string ndate = Convert.ToString(row.Cells[3].Value);
            ndate = ndate.Trim();
            //nvEnreg = ecoleDataSet.Inscription.FindBynumCoursnumEtudannée(ncours, netud, ndate);
            inscriptionTableAdapter.Delete(ncours, netud, ndate);
            ecoleDataSet.AcceptChanges();
            this.inscriptionTableAdapter.Update(ecoleDataSet.Inscription);
            this.coursTableAdapter.Update(ecoleDataSet.Cours);
            this.coursTableAdapter.CoursDetud(this.ecoleDataSet.Cours, numero);
            this.notCoursDetudTableAdapter.notCoursDetud(this.ecoleDataSet.notCoursDetud, numero);
            this.tableAdapterManager.UpdateAll(this.ecoleDataSet);