Enregistrement des modifications sur DataGrid

[Résolu]
Signaler
Messages postés
48
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
29 avril 2020
-
 rlapt -
Bonjour,

Je rencontre la difficulté suivante :

J'ai créé une forme avec une DataGrid et un bouton.
La DataGrid est chargée avec une DataTable

Me.DataGridView1.DataSource = MonDataTable


Le tout s'affiche normalement et les cellules de la DataGrid sont bien modifiables.
De plus une Procédure permet d'enregistrer la DataTable dans la base de données. Elle est lancée de deux façons :
- le changement de ligne dans la DataGrid
- Le clic sur le bouton

La difficulté est la suivante :

L'enregistrement des modifications lorsque l'on change de ligne dans la DataGrid ne fonctionne pas.

Si je clique sur le Bouton qui lance la même procédure d'enregistrement que celle lancée sur l'événement : DataGridView1_RowLeave, les modifications sont bien prises en compte dans la base de données. Après vérification, effectivement sur un changement de ligne les modifications ne sont pas reportées sur la DataTable.

Après avoir regardé toutes les propiétés et méthodes de la DataGrid, je ne trouve pas comment forcer la modification de la DataTable sur un changement de ligne.

Auriez-vous une idée ?

Cordialement

5 réponses

Messages postés
14823
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 octobre 2021
156
Quel est le problème ?
Messages postés
48
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
29 avril 2020

Bonjour,

Qu'est ce que vous ne comprenez pas ?

Cordialement
Messages postés
14823
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 octobre 2021
156
Messages postés
48
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
29 avril 2020

Bonsoir NHenry,

Merci de votre aide.

Effectivement avant d'écrire la totalité de ma question je ne m'étais pas connecté.
Lorsque je me suis connecté au milieu de l'écriture du message il est parti tout seul.

Comme je le l'expliquais dans mon texte, dans mon cas, c'est le transfert des données entre la DataGrid et la DataTable qui ne se fait que lorsque l'on perd le focus de la DataGrid. Lors du changement de ligne (on ne perd pas le focus donc) la DataTable n'est pas remis à jour. Ce qui implique que lors de l'enregistrement de la DataTable dans la base de données rien ne change.
Dans le cas du clic sur bouton :
Pour actionner le bouton, il faut sortir de la DataGrid (donc elle perd son focus). Ceci implique que les modifications effectuées dans la DataGrid sont bien transférées dans la DataTable et donc être enregistrées dans la base de données.

Cordialement
Bonjour,

Finalement pour ceux que cela intéresse, j'ai trouvé la cause.

lorsque je voulais enregistrer, j'utilisais l'événement "RowLeave" de la DataGrid. L'erreur était là. Sur le déclenchement de cet événement, le transfert des modifications dans le DataSet n'est pas encore fait.
Une solution consiste à utiliser "RowEnter" de l'arrivée sur la ligne suivante.

Cordialement