Bonjour,

Problème on ne peut plus classique :

- Une Form avec des Textbox bindés sur une table maître (ça , ça roule)
- Un Datagrid view qui Bind les enfants des données maîtres : ça semble rouler aussi.

Le souci, que la source de données SQL enregistre les modifications enfants du Datagridview, et notamment les inserts qui ont besoin de champs cachés enfants, nécessaires pour le modèle relationnel enfants --> Parent.

1) LECTURE

Mon code actuel...

Chargement des données, une fois la connexion établie (Load de la Form):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
        StrSql = "Select TCLIENTS_CONTACTS.* From TCLIENTS_CONTACTS order by CCO_NOM Where CCO_IDCLI='" & IdMaitre & "';"
        ObjetCommand = New SqlCommand(StrSql)
        ObjetDataAdapter = New SqlDataAdapter(ObjetCommand)
        ObjetCommand.Connection() = ObjetConnection
        ObjetDataAdapter.Fill(ObjetDataset, "TCLIENTS_CONTACTS")
        ObjetDataTable = ObjetDataset.Tables("TCLIENTS_CONTACTS")
        MasterTemplate.DataSource = ObjetDataTable
Le lien se fait donc sur une données 'code' : idMaitre. elle conserve la valeur active de l'enregistrement maître. L'affichage du datagridview se fait juste via un filtre du Datagridview (ça, ça me gêne quelque part que je doive utiliser un filtre pour respecter un modèle relationnel)

Le Filtre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
        If TXT0.Text Then IdMaitre = TXT0.Text
        MasterTemplate.FilterDescriptors.Clear()
        MasterTemplate.FilterDescriptors.Add(New FilterDescriptor("CCO_IDCLI", FilterOperator.IsEqualTo, IdMaitre))
Je récupère une valeur bindée en TextBox (TXT0 / Nom neutre pour pouvoir réutiliser facilement le code sur une autre form) de l'enregistrement maître, j'efface le filtre courant et je remet le bon.

2) MAJ du Datagrid

Je laisse l'UI du Databind opérer, çà roule à l'écran, en changeant d'enregistrement maître, les modifications sont conservées. Le propriétés du Datagrid semblent donc ok.

en Mise à jour :
- Les update sont corrects
- Les delete sont corrects.
- Les insert ne sont pas visibles : Cause probable, la clé étrangère de l'enfant non renseignée (cachée et ne devant pas être saisie) ne lie pas l'enfant au parent : problème d'adoption à gérer.

3) Validation finale via un Bouton.

J'ai tenté plusieurs syntaxes. En vain.
La dernière :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
        ObjetDataAdapter.Update(ObjetDataset)
ramène l'erreur : Impossible pour Update de trouver TableMapping['Table'] ou DataTable 'Table'."

L'enfant ne peut donc pas grandir...

Donc deux soucis d'enfants pour le père de famille que je suis...
Des conseils?
Un bon tuto raté????