Delete ne se fait que si je ferme la Form
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:
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); |