Enregistrement des modifications sur DataGrid [Résolu]

Messages postés
37
Date d'inscription
lundi 11 avril 2011
Dernière intervention
1 novembre 2018
-
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
Afficher la suite 

Votre réponse

5 réponses

Messages postés
14383
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
10 février 2019
153
0
Merci
Quel est le problème ?
Commenter la réponse de NHenry
Messages postés
37
Date d'inscription
lundi 11 avril 2011
Dernière intervention
1 novembre 2018
0
Merci
Bonjour,

Qu'est ce que vous ne comprenez pas ?

Cordialement
Commenter la réponse de RLAPT
Messages postés
14383
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
10 février 2019
153
0
Merci
Bonsoir,

Ah, ok, j'avais un message incomplet.

Voir :
http://msdn.microsoft.com/fr-fr/library/system.data.common.dataadapter.update%28v=VS.80%29.aspx
Commenter la réponse de NHenry
Messages postés
37
Date d'inscription
lundi 11 avril 2011
Dernière intervention
1 novembre 2018
0
Merci
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
Commenter la réponse de RLAPT
0
Merci
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
Commenter la réponse de rlapt

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.