//Suppresion d'un des clients private void btnSupprimerClient_Click(object sender, EventArgs e) { if (dgvClients.SelectedRows.Count > 0) { if (MessageBox.Show("Supprimer l'enregistrement ?", "Confirmer", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { string idDgv = ""; string rel = ""; idDgv = dgvClients.SelectedRows[0].Cells["ID"].Value.ToString(); //Requête pour éviter de supprimer client qui à une relation AchatVenteFinancesDataContext relationClient = new AchatVenteFinancesDataContext(); var requete = from relation in relationClient.AchatVenteVoiture where relation.idClient.ToString() == idDgv select relation.typeOperation; //Je choisi le type mais j'aurai pu choisir n'importe quoi d'autre foreach (var aa in requete) { rel = aa.ToString(); //Si il y a quelque chose dans rel alors cela veut dire qu'il y a une relation } if (rel != "") { MessageBox.Show("Impossible de supprimer ce client car il est associé à un achat ou une vente"); } else //Si il n'y a rien dans rel alors cela veut dire qu'il n'y aucune relation donc que je peux supprimer mon client { //supp dans BD int iId = (int)dgvClients.SelectedRows[0].Cells["ID"].Value; new G_ClientsVoiture(sConnex).Supprimer(iId); //supp dans mémoire int index = dgvClients.CurrentRow.Index; dgvClients.Rows.RemoveAt(index); MessageBox.Show("Suppression effectuée", index.ToString()); } } } else { MessageBox.Show("Sélectionner l'enregistrement à supprimer"); } }