Enregistrement des modifications sur DataGrid

Résolu
RLAPT Messages postés 48 Date d'inscription lundi 11 avril 2011 Statut Membre Dernière intervention 29 avril 2020 - Modifié par RLAPT le 31/07/2013 à 19:37
 rlapt - 2 août 2013 à 07:02
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

NHenry Messages postés 15036 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 5 février 2023 156
31 juil. 2013 à 19:24
Quel est le problème ?
0
RLAPT Messages postés 48 Date d'inscription lundi 11 avril 2011 Statut Membre Dernière intervention 29 avril 2020
31 juil. 2013 à 19:39
Bonjour,

Qu'est ce que vous ne comprenez pas ?

Cordialement
0
NHenry Messages postés 15036 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 5 février 2023 156
31 juil. 2013 à 20:32
0
RLAPT Messages postés 48 Date d'inscription lundi 11 avril 2011 Statut Membre Dernière intervention 29 avril 2020
31 juil. 2013 à 20:49
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
0
Rejoignez-nous