Salut,

J'ai fais un dataset fortement typé.
J'ai donc des tables avec des TableAdapter.
Certains command (insert, update, delete) ont été générés automatiquement. J'ai créé les autres à la main (tables sans clé primaire, ou avec clé primaire mais dont le delete et le update n'ont pas été générés, sans que je comprenne pourquoi).
Tous gèrent les accès concurrentiels et c'est très bien ainsi.
Lorsqu'une erreur est levée suite à un accès concurentiel, j'émet un message signalant que des modifications ont été effectuées ailleurs et demandant s'il veut quand-même sauvegarder (et donc écraser les modifs).
C'est ici que cela se corse.
Je ne trouve pas comment passer outre la partie accès concurrentiel, un peu comme avec un CommandBuilder (mais cela n'existe pas pour les TableAdapter, je crois, et ne fonctionne pas quand le command n'est pas généré par un CommandBuilder).
Je pensais donc, pour chaque table, créer un TableAdapterConcurentiel et un TableAdapterNONconcurentiel que j’appellerais selon le besoin.
Mais je n'arrive pas non plus à créer plusieurs TableAdapter pour la même table.
Je comprend la logique de n'avoir qu'un seul TableAdapter par table, mais je trouve un peu dommage de pouvoir tout grouper dans un XSD mais d'être obligé de refaire tous les command (et leurs paramètres) à la main chaque fois que l'utilisateur a été averti d'un accès concurrentiel et qu'il veut passer outre.
Enfin, si je crée d'autres queries dans les TableAdapter pour les delete et les update sans concurrence, ils n'entreront pas dans le updateAll et je n'aurai donc pas la hiérarchie ni la transaction.

Je cherche depuis un moment mais je ne trouver nulle part d'info à ce sujet.

Un lien, une idée, une solution déjà utilisée ?

Merci de vos z'avis z'avisés.