Bonjour,

Je viens ici pour demander un coup de main sur un problème qui me turlupine depuis bientôt 2 semaines ... Êtant plutôt spécialisé au développement web, je n'ai pas l'habitude d'utiliser le C#, mais je pense que ce problème reste assez complexe et est au dessus d'un problème de débutant.

Pour faire simple, je développe une application dont un des écrans contient 3 DGV. Ces DGV sont là pour afficher et permettre une modification / suppression d'informations. Pour faire simple, le 1er DGV présente les éléments "Père", et lorsqu'on en sélectionne un les deux autres DGV sont ré-actualisés pour afficher les deux enfants du père concerné.
Je n'ai aucun problème dans cette gestion des 3 DGVs, j'ai d'abord voulu gérer ça grâce à un databinding, mais étant en manque de temps j'ai finalement tout fait moi même
Mon problème est dans l'enregistrement des modifications effectuées dans un ou plusieurs des DGV. Pour expliquer un peut tout ça, j'avais rédigé un pdf pour l'envoyer à mon prof qui ne m'a pas répondu, et le temps passe, mais je pense que je peux vous mettre globalement la même explication, qui est claire je trouve. N'hésitez pas à demander des précisions si besoin !

Problème :
Comment faire un update d'un dataAdapter avec un dataSet contenant 3 tables ( ou faire 3 updates avec 3 DataTables ).

Dans mon code, j'ai créé une petite fonction à laquelle je passe en paramètre des requêtes, et celle-ci va actualiser chacun des DGVs avec la requête fournie.
Pour se faire, la fonction procède en 3 étapes : elle déclare un DataSet, dans lequel seront stockés les 3 data tables. Elle déclare également le DataAdapter dans lequel seront stockées les données :


La fonction ajoute ensuite la data table au data adapter et au data set :


Et enfin, on rempli le DGV :


Le problème réside dans l'enregistrement de modifications. Celle-ci intervient lorsqu'on veut quitter la fenêtre, et utilise DataS.HasChanges() pour détecter s'il y a eu ou non des modifications. Si c'est le cas, il faut enregistrer ces modifications dans la BDD.
Le problème, c'est que cela fonctionne pour un seul des trois DGV, celui en bas à gauche traitant des frais forfaitaires, soit la dernière data table crée dans le code ( peut être le problème ? )
Pour mettre à jour, j'utilise ce code :


Plusieurs choses, en essayant un update sur la data table 3, tout va bien. En essayant un update sur la datable, pas de message d'erreur mais pas d'enregistrement de modif, et enfin en essayant sur la table2, j'ai un message d'erreur me parlant d'une colonne qui n'est même pas sensée concerner la table.
Comment puis-je palier à ce problème ?