begin process at 2008 08 08 21:38:12
1 223 607 membres
365 nouveaux aujourd'hui
14 230 membres club

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 : Getchanges deleted rows [ Base de données / MySQL ] (olibara)

Getchanges deleted rows le 19/02/2008 16:31:41

olibara
Bonjour

J'utilise la methode getchanges pour connaitre les rows modifiés par un datagridview dans un dataset

pour added et modified ca semble facile mais pour deleted, j'ai bien un row avec satus deleted je ne vois pas de data
Comment puis-connaitre la clef originale afin d'appliquel de delete dans la DB ??

Re : Getchanges deleted rows le 19/02/2008 18:58:42

olibara

Bonjour

Comme tout le monde semble muet pour toute qustion d'update de DB je vais fournir le resultat de mes essais-erreurs, cela sertvira peut-etre a d'autres .....

Comment mettre a jour une DB a partir d'un DataGridView ?
Le datasource du DataGridView est un dataset rempli avec un datadapter

Premiere chose :
Remplir un dataset avec les modifications demandées

ch = dsAddr.GetChanges();
(ceci chargera un dataset avec tous les rows modifies et leurs status)
J'ai été surpris de voir que les rows déletés apparaisaient sans data visible (avec le debugger) mais la methode update se débrouille tres bien avec

Cependant Getchange() peut etre appelé avec un type de modification souhaité 
Voici un exemple pour l'operation Delete :

      DataSet ch = new DataSet();         // declaration du dataset temporaire pour charger les rows a traiter
      ch = dsAddr.GetChanges(DataRowState.Deleted);  // chargement des rows deleté
// construction de la commande SQL de delete
      adaAddr.DeleteCommand = new MySqlCommand("DELETE FROM address WHERE addrID=?addrID", conn);
// construction du parametrage de la commande delete
      adaAddr.DeleteCommand.Parameters.Add("?addrID", MySqlDbType.Int32, 11, "addrID").SourceVersion = DataRowVersion.Original;
// execution du delete
      adaAddr.Update(ch);
// ET VOILA
// J'ai peut etre réveillé ici quelques spécialiste qui pousseront des cris d'horreurs pour dirte que c'est pas comme ca qu'il faut faire mais tant mieux car jusqu'ici : Silence Radio ........

En tout cas ca marche
Pour UPDATE et INSERT je vais encore investiguer mais il semble que la construction de la commande soit plus fastitieuse car il faut enumerer tous les champs...
A suive ...


Re : Getchanges deleted rows le 19/02/2008 23:15:50

olibara
Pour ceux que ca interesse, j'ai trouvé plus simple encore !!

Re : Getchanges deleted rows le 29/04/2008 15:01:14

fontome_123

bonjour
si c'est possible tu as dit que tu as troouvé un truc plus simple c quoi
fontome viendra le soir ,vous hantez faites gaf

Re : Getchanges deleted rows le 29/04/2008 15:10:34

olibara

Tiens !!

Première réaction depuis deux mois !

Fantome pas tres actif sur ce sujet

Exemple ci apres :

    // **************************************************************************
    private void do_UpdChauf()
    {

      MySqlCommandBuilder cb = new MySqlCommandBuilder(adaChauffUpd);
      DataSet ch = new DataSet();
      ch = dsChauffUpd.GetChanges(DataRowState.Deleted);

      if (null != ch)
      {
        int del = adaChauffUpd.Update(ch);
      }
      ch = dsChauffUpd.GetChanges(DataRowState.Modified);
      if (ch != null)
      {
        int upd = adaChauffUpd.Update(ch);
      }

      ch = dsChauffUpd.GetChanges(DataRowState.Added);
      if (ch != null)
      {
        int add = adaChauffUpd.Update(ch);
      }
      return;
    }


Re : Getchanges deleted rows le 29/04/2008 17:08:40

fontome_123
euh ca fait juste qql jours que je galere avec cette DGV
en faite moi je develope avec vbnet2005
donc j'ai convertie ton code
mais il m'affiche une erreur au niveau de :
ch = dsChauffUpd.GetChanges(DataRowState.Modified
il me dit: Object reference not set to an instance of an object.
en fait je veux savoir pour adaChauffUpd tu le crée a nouveau ou bien tu utilise celui avec quoi tu as crée la dataset, car moi je crée un autre mais moi ca marche pas
fontome viendra le soir ,vous hantez faites gaf

Re : Getchanges deleted rows le 29/04/2008 17:35:07

fontome_123
en plus a quoi sert
MySqlCommandBuilder cb = new MySqlCommandBuilder(adaChauffUpd);
puisque c jamais  utilisé

fontome viendra le soir ,vous hantez faites gaf

Re : Getchanges deleted rows le 29/04/2008 18:26:45

olibara
Salut

1- adachaufupd c'est l'adapteur utilisé poutr la requete du fill de ton DGV et c'est LUI que tu dois utiliser car c'est LUI qui connait l'information de la DB

2- Ne te fie pas aux apparence ! MySqlCommandBuilder est Essentiel et c'est la que reside toute la magie de la chose, il va preparer dans l'adapter les syntaxes SQL de mise a jour qui te permet les commandes suivantes ...


Re : Getchanges deleted rows le 29/04/2008 23:48:37

fontome_123
okok
enfin ca marche jsute 2 truc
->1er :remarque il faut mettre(en c#) int add = adaChauffUpd.Update(ch.tables(0)); 'pour que ca marche sinon tu aurra droit a une erreur [(0)supposant qu'on veux la 1er table].
->2eme :question le test que tu fait
(ch != null)
c'est pour verifier le dataset est vide? si c'est vrai comment en fait vbnet2005 stp si tu as un idee?

fontome viendra le soir ,vous hantez faites gaf

Re : Getchanges deleted rows le 29/04/2008 23:48:37

fontome_123
okok
enfin ca marche jsute 2 truc
->1er :remarque il faut mettre(en c#) int add = adaChauffUpd.Update(ch.tables(0)); 'pour que ca marche sinon tu aurra droit a une erreur [(0)supposant qu'on veux la 1er table].
->2eme :question le test que tu fait
(ch != null)
c'est pour verifier le dataset est vide? si c'est vrai comment en fait vbnet2005 stp si tu as un idee?

fontome viendra le soir ,vous hantez faites gaf


[Page 1 Page 2 Page 3]
Classé sous : rows, connaitre, getchanges, deleted

Participer à cet échange

Livres en rapport

Pub



Appels d'offres

Snippets en rapport

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

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

Boutique

Boutique de goodies CodeS-SourceS