Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Mise à jour Dataset depuis dataGridView + rowFilter [ Base de données / ADO.NET ] (brixi69)

vendredi 22 février 2008 à 09:43:35 | Mise à jour Dataset depuis dataGridView + rowFilter

brixi69

Bonjour !

J'ai beau chercher je ne parviens pas à trouver une solution à mon problème et j'espère que quelqu'un pourra "lairer ma lanterne.

J'ai un dataGridView dont le dataSource est lié à un dataSet.
Lorsque j'effectue des modifications directement dans le dataSet le dataGridView est automatiquement mis à jour.
Par contre lorsque j'effectue des modifictations dans le dataGridView le dataSet ne prend pas directement en compte les modifs.
Je m'explique.

La table liée au dataGridView contient une colonne avc une valeur booléenne.
Admettons que j'ajoute un rowFilter sur mon dataSet pour ne filtrer que les lignes ayant une valeur = 1. Le dataGridView est bien mis à jour avec uniquement les lignes ayant la valeur 1. Par contre si je met ma valeur à 0 pour une ligne du dataGridView et valide, la ligne ne disparait que quand elle perd le focus. J'aimerais savoir comment forcer la mise à jour du dataSet sur base du dataGridView afin que le dataGridView  soit mis à jour directement en tenant compte du rowFilter et que cette ligne disparaisse.

J'espère avoir été clair.
Un grand merci d'avance...
@"#+++

dimanche 24 février 2008 à 21:12:15 | Re : Mise à jour Dataset depuis dataGridView + rowFilter

olibara

Salut

J'ai aussi ramé dans ces trucs la
Tu a essayé la methode Getchanges ?

http://www.csharpfr.com/infomsg_GETCHANGES-DELETED-ROWS_1078601.aspx#2

lundi 25 février 2008 à 09:53:24 | Re : Mise à jour Dataset depuis dataGridView + rowFilter

brixi69

Salut !!

J'essaierai la méthode getchanges() quand j'aurai le temps.
Je vois que tu parles d'une manière plus simple? Quelle est-elle ?7

Voici comment j'ai procédé pour résourde mon problème. J'ai modifié mes lignes directement dans le dataSet. Le dataGridView est alors mis à jour automatiquement.

J'utilise la syntaxe suivante : votreDataSet.findByPrimaryKey(Clé à chercher)["Nom de la colonne"] = ...


@"#+++

lundi 25 février 2008 à 10:10:26 | Re : Mise à jour Dataset depuis dataGridView + rowFilter

olibara

Bonjour

Oui si tu veux faire des modifs programaticaly dans to datagridview bindé sur un dataset tu DOIS faire les modif dans le DATASET

Ma methode c'est pour appliquer les modifs danss la DB en SQL
Ce sujet ne semble pas tres connu ou suporté dans beaucoup de forum.

Pas a pas
      MySqlCommandBuilder cb = new MySqlCommandBuilder(adaAddr);
(ca c'est une commande magique !!)

      DataSet ch = new DataSet();
      ch = dsAddr.GetChanges(DataRowState.Deleted);
      adaAddr.Update(ch);

      ch = dsAddr.GetChanges(DataRowState.Modified);
      adaAddr.Update(ch);

      ch = dsAddr.GetChanges(DataRowState.Added);
      adaAddr.Update(ch);


lundi 17 mars 2008 à 01:24:24 | Re : Mise à jour Dataset depuis dataGridView + rowFilter

ecosmose

Idem possible réponse donnée sur le lien de Olibara..peut que ta lanterne sera illuminée..

BINOME de ECOSMOSE
Association ecologique d'actions de culture et d'Informations

lundi 17 mars 2008 à 07:31:07 | Re : Mise à jour Dataset depuis dataGridView + rowFilter

olibara

Salut

Ayant acquis un peu d'expérience, voici ce que je te conseille

Quand tu connais le DataGridRowView que tu veux modifier, tu accede le row lié dans la datatable par le databounditem et tu fais la modif dessus, elle sera repercutéee dans le datarowview et le change sera bien triggé
Voici un exemple

          DataRowView drv = (DataRowView)dgv_ContUpd.Rows[i].DataBoundItem;
          DataRow dr = drv.Row;
          dr["addrID"] = -1;

lundi 17 mars 2008 à 09:57:13 | Re : Mise à jour Dataset depuis dataGridView + rowFilter

brixi69

Bonjour !

Merci pour vos réponses !

Pour une suppression de record la technique que j'ai évoquée ci dessus (modification directe dans le dataset) fonctionne correctememnt.

Toutefois pour une modification de record je rencontre des problèmes. Lors de l'update de la BDD sur base du dataset, tous les champs modifiés ne sont pas pris en compte bien que le dataset soit correct (visualisé en debug). Comment est-ce possible ?

@"#+++

lundi 17 mars 2008 à 10:28:48 | Re : Mise à jour Dataset depuis dataGridView + rowFilter

olibara

Bonjour

Tous les champs ?
Tu veux dire que certains champs modifiés dans un record sont pris et pas d'autres
ou que certains records sont pris et pas d'autres
Quelle est ta commande d'update
Comment tu la génère ?


mardi 18 mars 2008 à 22:36:50 | Re : Mise à jour Dataset depuis dataGridView + rowFilter

brixi69

En réalité seul un champ de type string est éditable dans mon datagridview, ce dernier étant lié à un dataset.

J'utilise la méthode update générée auto par le builder visualstudio. Je debug et juste avant l'update je visualise le dataset qui a pris les bonnes valeurs après éditions mais ma bdd n'est pas mise à jour correctement.
Tu as déjà eu ce problème ?

@"#+++

mardi 18 mars 2008 à 22:48:28 | Re : Mise à jour Dataset depuis dataGridView + rowFilter

olibara

Ce que j'ai déja eu c'est qu'apres avoir modifié les champs dans le DGV par programmation, le rowstate (je ne me souviens plus du nom exact) etait resté unchanged et je devais le forcer modifié
C'est pour ca que je fais maintenant directement les modifications dans la datatable PAS le DGV

Maintenant si tu fais un getchange tu peux voir les rows qui seront pris dans l'update


1 2 3 4 5

Cette discussion est classé dans : valeur, dataset, jour, datagridview, rowfilter


Répondre à ce message

Sujets en rapport avec ce message

Mettre à jour des champs d'une table Access [ par Blacknight91titi ] Bl@cknight91TitiBonjour,J'aimerais savoir comment mettre à jour les champs d'une table d'une dataset. J'utilise une c Mise à jour des données du dataset vers la base de données [ par chafaqis ] salut tt le mondeJ'ai crée une application Win form en C# mon problème est le suivant:j'ai affichée le résultat d'un dataset dans un datagrid puis j'a récupérer une valeur d'un dataset [ par feuillou ] Bonjour,j'aimerais récupérer les valeurs d'un dataset une à une pour les affecter à des variables qui me serviront à faire une courbe.Je procede comme [C#] circuler dans un dataset [ par bibicool ] Bonjour,Je suis toujours avec mon même dataset liant deux tables entre elles..J'ajoute une colonne "calculée". Ce calcul est malheureusement assez com mise a jour base de donnees c# [ par Moucave ] Bonjour tout le monde,   Je suis en train de developper une application en c# gerant les bases de donnees. J'affiche les champ a l'aide d'une dataGrid dataset et combobox [ par therealcorwin ] bonjour a tous !!!!Je voudrais, a partir d'une base sqlce sur PPC, selectioner dans une combobox une valeur de la premiere colonne de ma base et dans Afficher ou pas une colonne de datagrid [ par aeled ] Bonjour,J'aimerais pouvoir afficher la colonne mise à jour de mon datagrid si la valeur renvoyée par la base de données pour cette colonne est 1 et si DataGridView à valider [ par zebobo5 ] Kikoo,Je veux valider les données que j'ai dans ma DataGridView, dans ma DataTable, lorsque je perd le focus : void DataGridView_Leave(object sender, DataGridView et DataSet [ par Bidou ] Bonjour,Avec le datagridView (et le datagrid aussi d'ailleurs), quand on y set comme DataSource une table d'un DataSet (par exemple) alors le datagrid problème d'affichage datagridview [ par patou1007 ] bonjour,je n'arrive pas à afficher mes données dans le datagridview.J'ai une table d'employés avec 4 champs.voici une partie de mon code suivant: Conn


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Appels d'offres

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,842 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.