Je cherche à ajouter un enregistrement dans un dataset.
J'ai d'abord créer un objet :
CurrencyManager Cm = (CurrencyManager)BindingContext[dbDs_service1, "tp1_service"];
où dbDs_service1 est mon dataset et tp1_service le nom de ma table auquel mon dataset est lié.
Pour ajouter un enregistrement à mon dataset, j'ai ensuite fait :
Cm.AddNew();
La propriété count de Cm à bien été incrémenté. Cependant, cette ligne :
dbDs_service1.tp1_service[Cm.Position].MonChamp = "blabla";
me retourne l'erreur suivante :
There is no row at position count.
Il semble donc qu'il n'y ait pas eu d'ajout de ligne dans mon dataset...
M'y suis-je mal pris ? Ais-je oublié quelque-chose ?
...et mon dataset n'est pas mis à jour.
Cependant je croyais que cette méthode servait à mettre à jour la table de ma base de donnée à partir du dataset. Sert-elle aussi à mettre à jour le dataset à partir d'une instance de CurrencyManager ? Ou parles-tu d'une autre méthode update pour faire cette mise à jour ?
Mathmax
donc en fait, il ne faut pas que j'appelle la méthode update() quand l'événement Mondataset.RowChanged se produit puisque c'est justement grâce à update que l'enregistrement va être effectivement ajouté au dataset...
Et le update permet-il aussi de mettre à jour la table de la base de donné, ou faut-il utiliser une autre méthode ?
normalement ce Update() permet d'ajouter (modifier) la ligne au dataset... ensuite, tu peux appeler l'Update() de ton Adapter (SqlDataSource) pour mettre à jour la table.
En fait il n'y a pas de méthode update() pour les instances de dataset ou de CurrencyManager. De quel update() (méthode de quelle classe) parles-tu quand tu dis : "ce Update() permet d'ajouter (modifier) la ligne au dataset" ?
si tu veux ajouter une ligne dans ton dataset,pourquoi tu ne fais pas le nom de ton dataset.nomdelatable..AddNomtableRow(les parametres de ta table.Si ta dataset a une table qui s'appelle Personne tu auras une methode AddPersonneRow()
FD