Bonsoir,
je vous expose mon problème:
Apres avoir ajouté une nouvelle ligne dans ma table grâce à un CurrencyManager, je fais un update grâce a un adapter.Update. Jusque là aucun soucis, la ligne se retrouve bien dans ma table access :
cmClient = (CurrencyManager)BindingContext[dataSet21, "Client"];
cmClient.AddNew();
...
cmClient.EndCurrentEdit(); adapterUpdate(dataSet21.Client)
Là ou ca se complique, c'est si je veux faire une modification de cette ligne tout de suite après (sans recharger l'appli) :
cmClient.EndCurrentEdit();
adapterClient.Update(dataSet21.Client);
dataSet21.Client.AcceptChanges();
Il y a une "Violation d'accès concurrentiel ". arg..
Je récupère l'erreur avec un catch(DBConcurrencyException ex) et regarde la ligne qui tente d'être mise à jour (ex.Row) mais tout est normal, j'en suis certain (id a modifier, les valeurs des champs ...).
J'ai aussi tenté de suspendre la liaison (binding) du crrencyManager avant l'update, mais rien (Ce qu'on fait pas quant on est désespéré ...)
J'ai enlevé ma clef primaire, la relation de la table, toujours rien (alors là j'étais au bout :).
Si je recharge mon appli par contre tout fonctionne bien, alors en attendant, la solution que j'ai trouvé est de vider la table puis de la remplir dès que je fais un Update -_-
C'est une erreur qu'on retrouve sur les forums mais je n'ai vu aucune solution. Enfin il y a une première fois a tout ;)
Nb : j'ai le meme soucis avec le Delete forcément.