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 :Voici ma traduction sans le datasettypé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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)
En fait, je coince sur le dt.Rows.Add(dr)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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")
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 ?
Partager