begin process at 2010 02 10 07:54:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Base de données

 > 

ADO.NET

 > 

Mise à jour Dataset depuis dataGridView + rowFilter


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Mise à jour Dataset depuis dataGridView + rowFilter

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ée 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...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales