Bonjour a tous

Je galère depuis un moment pour mettre a jour ma base de données.
J'explique:
une table "facture" (coté 1) et une table "ligne" (coté plusieurs)
je rapatrie les deux dans un dataset et y ajoute des lignes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 With ds.Tables("FAC")
                 Dim drFac As DataRow = .NewRow
                 drFac("fac_reference") = Left(strRef, 4) & Format((Right(strRef, 6) + j), "000") 
                drFac("fac_du") = DateAdd("d", 1, dtDerFac)
 ' je passe tout le code.......                            
                .Rows.Add(drFac)
lgFacId = drFac("fac_id") 'je recupere tout de suite le nouvel id crée
End With
 
 With ds.Tables("LIGNE")
                        Dim drLig As DataRow = .NewRow
                        drLig("lig_lien_facture") = lgFacId
                        drLig("Lig_libellé") = "Loyer"
                        drLig("lig_montant") = decMontantLoyer
                        .Rows.Add(drLig)
                    End With
Une fois les lignes ajoutées au dataset, je vérifie avec 2 datagrid view que les modifications ont bien été ajoutées:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
MainForm.dgv2.DataSource = ds.Tables("FAC")
        MainForm.dgv1.DataSource = ds.Tables("LIGNE")
Je vois bien les lignes crées.
Mais dés que je veux faire la mise a jour vers la table:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 Dim CB As New OleDbCommandBuilder(daFac)
 
        Dim CB1 As New OleDbCommandBuilder(daLigne)
 
        cnn.Open()
 
        daFac.Update(ds.Tables("FAC").GetChanges(DataRowState.Added))
 
        daLigne.Update(ds.Tables("LIGNE").GetChanges(DataRowState.Added))
 
        cnn.Close()
La mise a jour de la table "facture" (coté 1) s'effectue bien, je recoit un message d'erreur pour la table "ligne"(coté plusieurs):
Vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requis dans la table « FACTURE ».
Je comprend bien l'erreur mais apres vérification, la table "facture"a été mise à jour ,tous les champs sont bien renseignés, mais on dirait qu'il ne le "voit pas".
Pourriez vous me dire ou est l'erreur?