Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Delete de lignes d'une base de données avec le dataset

7 réponses
Avatar
Jean-Michel
Bonjour

Je débute en VB Net

J'ai une appli qui met à jour une table access, j'utilise OleDataAdapter et le Dataset, j'arrive à mettre à jour le dataset mais je n'arrive pas à récepcuter ces modifications dans la base de données voici le code qui j'ai sur le click de mon bouton Delet
Private Sub DeleteBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DeleteBtn.Clic
DsLangue1.Tables("tblLangue").Rows.RemoveAt(Me.BindingContext(DsLangue1, "tblLangue").Position
OleDbDataAdapter1.Update(DsLangue1, "tblLangue"
End Su

Il me semble que la ligne OleDbDataAdapter1.Update(DsLangue1, "tblLangue") devrait normalement envoyer les nouvelles valeurs de mon Dataset vers la base de données.

Merci à vous pour votre aide

Jean-Michel

7 réponses

Avatar
Bonjour,

a tu essayé de faire un dataset.acceptchanges sinon le dataset transmet bien
les mise à jours mais ne les prend pas en considération

Sebastien

"Jean-Michel" a écrit dans le message
de news:
Bonjour,

Je débute en VB Net.

J'ai une appli qui met à jour une table access, j'utilise OleDataAdapter


et le Dataset, j'arrive à mettre à jour le dataset mais je n'arrive pas à
récepcuter ces modifications dans la base de données voici le code qui j'ai
sur le click de mon bouton Delete
Private Sub DeleteBtn_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles DeleteBtn.Click



DsLangue1.Tables("tblLangue").Rows.RemoveAt(Me.BindingContext(DsLangue1,
"tblLangue").Position)
OleDbDataAdapter1.Update(DsLangue1, "tblLangue")
End Sub

Il me semble que la ligne OleDbDataAdapter1.Update(DsLangue1,


"tblLangue") devrait normalement envoyer les nouvelles valeurs de mon
Dataset vers la base de données.

Merci à vous pour votre aide,

Jean-Michel


Avatar
Jean-Michel
Bonjour

J'utilise Removeat qui est à la fois un Delete + Accept Changes, mais ceci dit j'ai essayé avec accept.changes mais pas de résultat

En tout cas merci pour ta réponse

Jean-Michel
Avatar
pardon j'avais très mal lu et pas compris ce que tu disais mais en lisant ta
réponse a mon post j'ai pigé le souci si effectivement le removeat détruit
une ligne et passe en même temps un acceptchanges alors effectivement ta
base de données ne opeut pas être mise à jour en effet le acceptchanges dit
au dataset un truc du genre "ok tous c'est bien passé plus la peine
d'assurer le suivi des modifications fait comme si tu avais la nouvelle
extraction de la base" topo quand derrière le removeat tu passe un
datadapter.update () le dataset n'a plus une seul ligne flaguée comme devant
être modifié (insert delete update) donc le datadapter ne passe aucune
modification à la base esssaie de mettre en commentaire le removeat mais ton
dataset dans une datagrid fais une modification sur la datagrid voir mêem
supprimer une ligne ensuite un update sur le datadapter et là tu verra les
omdifications dans ta base il te faut trouver une autre méthode que le
removeat si celui ci passe réellement un accpetchanges juste après ou alors
flag la ligne a supprimée comme rowdeleted là la mise a jour passera

Sebastien


"Jean-Michel" a écrit dans le message
de news:
Bonjour,

J'utilise Removeat qui est à la fois un Delete + Accept Changes, mais ceci


dit j'ai essayé avec accept.changes mais pas de résultat.

En tout cas merci pour ta réponse.

Jean-Michel


Avatar
Jean-Michel
Bonjour Sébastien
Merci pour ta réponse, puis-je encore te solliciter avec un complément d'infos

Pour mettre ma ligne en RowsDeleted, il faut que je connaisse le no de la ligne, connais-tu la commande pour extraire le no de ligne courrante

ma commande serait du type
'DsLangue1.Tables("tblLangue").Rows(intRowNumber).Delete(

Merci et bonne journé
Jean-Miche
Avatar
Pas de souci si je peux t'aider ;)

première question comment fais tu pour sélectionner la ligne à supprimer ?

récupération dans une datagrid, une combo saisie du numéro dans une textbox
?

sinon sur le principe si par exemple c'est dans une datagrid tu sélectionne
la ligne dans la datgrid tu appuie sur la touche delete de ton clavier cela
suffit à la supprimer pour les autre méthode
il faudrait un peux plus de précisions j'ai vu que tu passais par une
fonction clic sur un bouton mais je n'ai pas saisie ce qui dans ta fonction
renvoyé le numéro de ligne du dataset
la commande que tu indique ci dessous me parait bonne reste a savoir comment
tu récupère ton intRowNumber

Sebastien


"Jean-Michel" a écrit dans le message
de news:
Bonjour Sébastien,
Merci pour ta réponse, puis-je encore te solliciter avec un complément


d'infos ?

Pour mettre ma ligne en RowsDeleted, il faut que je connaisse le no de la


ligne, connais-tu la commande pour extraire le no de ligne courrante ?

ma commande serait du type
'DsLangue1.Tables("tblLangue").Rows(intRowNumber).Delete()


Merci et bonne journée
Jean-Michel



Avatar
Jean-Michel
Sébastien

ça y est, j'ai trouvé, ce qui me manquait c'était la manière de récupérer la position de mon enreg, j'utilise cette command

intrownumber = Me.BindingContext(DsLangue1, "tblLangue").Positio

En tout cas, merci pour ton aide

Jean-Michel
Avatar
De rien pour l'aide n'hésite pas à revenir poster tes questions et bon
courage pour la suite ;)

Sebastien


"Jean-Michel" a écrit dans le message
de news:
Sébastien,

ça y est, j'ai trouvé, ce qui me manquait c'était la manière de récupérer


la position de mon enreg, j'utilise cette commande

intrownumber = Me.BindingContext(DsLangue1, "tblLangue").Position

En tout cas, merci pour ton aide.

Jean-Michel