Ok
Donc to datagridview et remplit par une requete sql et ton datasource est le dataset resultat de cette requete pour les mise ajour voici la methode magiqsue que j'ai mis un peu de tempq a trouver :
// ************************************************************************************************************
private void do_update()
{
// Le plus important c'est de preparer les commandes sql , cette methode t'epargne de devoir le faire a la main ( tu dois donner ton adapter)
MySqlCommandBuilder cb = new MySqlCommandBuilder(dataAdapter);
// Ensuite tu charge les modifs dans un ds temporaire et tu applique les differents cangemeents
DataSet ch = new DataSet();
ch = dsAddr.GetChanges(DataRowState.Deleted);
if (null != ch)
{
int del=adaAddr.Update(ch);
lbl_delcnt.Text = del.ToString();
}
ch = dsAddr.GetChanges(DataRowState.Modified);
if (ch != null)
{
int upd=adaAddr.Update(ch);
lbl_updcnt.Text = upd.ToString();
}
ch = dsAddr.GetChanges(DataRowState.Added);
if (ch != null)
{
int add=adaAddr.Update(ch);
lbl_addcnt.Text = add.ToString();
}
// Dans mon cas j'ai ajouté cette comande car des deletes dans la table principale cree des orphelins dans une table liée
MySqlCommand cmd = new MySqlCommand("DELETE from tours where addrID not in ( select addrID from address );", conn);
int tourdel=cmd.ExecuteNonQuery();
lbl_deltourcnt.Text = tourdel.ToString();
dsAddr.AcceptChanges();
return;