Cette datagrid a un bouton qui permet d'enregistrer les modifications.
Ma classe métier CClient hérite d'une classe abstraite qui implémente INotifyPropertyChanged.
Lorsqu'on clic sur le bouton d'enregistrement, j'appelle la méthode de modification dans la base de données. Ca recharge bien la page avec les bonnes données, mais dans la base nous n'avons aucune modification.
Qu'est ce que je n'ai pas compris dans l'histoire ?
Whismeril
Messages postés19029Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention26 avril 2024656 17 juil. 2011 à 10:51
Bonjour,
je ne fais de WPF, alors je réponds peut être à coté.
En WinForm, pour binder il faut que la propriété Nom de ta classe soit défini avec get et set, sinon ça bug. Je suppose qu'en WPF aussi et que tu l'as fait.
Au moment de l'enregistrement si ta base de données est un fichier xml, il faut le sérializer entiérement, pour acces il faut faire un requete Update :
UPDATE MaTable SET 'MonChamp1 valeur1', 'MonChamp2 valeur2' WHERE (UniqueID = 'valeurIdUnique')
ou quelque chose comme ça. Une fois la requête exécutée, ta DB est mise à jour.
Pour sqlserver ou oracle je ne connais pas, mais je pense que c'est le même principe.
Tu peux récupérer la liste des UniqueID, que tu as modifié grâce à une méthode abonnée à "PropertyChanged" de INotifyPropertyChanged.
A la fin recharger ta DB, ne sert qu'à vérifier que tes modifs ont eu lieu.
premiumbfd
Messages postés29Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention17 juillet 2011 17 juil. 2011 à 18:52
Bonjour,
Merci de ta réponse.
Oui au niveau du get et set c'est tout ok.
Le truc, c'est qu'en pas à pas j'ai bien mon entité linq qui a le bon id. Et normalement, il suffit de lui dire :
monentite.nom = 'sonnouveaunom'
et d'update sa database.
Ce que je fais.
Je pensais que ce serait à cause du binding et du propertychanged que ça ne fonctionnait pas, puisque je ne maîtrise pas trop le binding, j'ai toujours tout fait à la mano.. Mais apparemment non. Je vais essayer autrement, voir si ça vient de là ou non...
Ou alors, je pensais que ça viendrait du fait que je ne fais pas la mise à jour sur un événement propre aux modifs datagrid, mais sur un bouton qui fait partie de la datagrid.. quelle importance ça devrait avoir?