Datatable.Add(Datarow) : pb avec le compteur autoincrémenté.
Bonjour,
Je suis en train de regarder comment recoder mes connexions à la base de données sans passer par le dataset typé.
J'ai un pb pour ajouter de nouveaux enregistrements à une table.
Avant j'avais :
Code:
1 2 3 4 5 6 7 8
|
Dim dr As DataRow = Nothing
Dim dt As DataTable = MyDataSetTypé.dt2_References 'où dt2 est la datatable associée à ma table Références
dr = dt.NewRow
'ici le code pour remplir dr
'ci-dessous le code pour mettre à jour ma bdd
dt.Rows.Add(dr)
Me.ta_References.Update(dt) |
Voici ma traduction sans le datasettypé
Code:
1 2 3 4 5 6 7 8 9 10 11
|
Dim dr As DataRow = Nothing
Dim dt As DataTable = MyDataSet.Tables("dt2_References")
dr = dt.NewRow
'ici le code pour remplir dr
'ci-dessous le code pour mettre à jour ma bdd
dt.Rows.Add(dr)
cmd = New SQLiteCommand(sql_References, con)
ad = New SQLiteDataAdapter(cmd)
Dim oCommandBuilder As New SQLiteCommandBuilder(ad)
ad.Update(MyDataSet, "dt2_References") |
En fait, je coince sur le dt.Rows.Add(dr)
L'erreur est que le champ N_ref qui est la clé primaire dans la table Références dans la BdD est qui est un compteur auto-incrémenté n'accepte pas de valeur nulle. Ce qui est logique.
Mais dans le premier code, l'instruction dt.Rows.Add(dr) générait automatiquement l'incrémentation de ce compteur.
Visiblement ce n'est pas le cas dans le second code.
Comment faut-il faire ?