IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ADO.NET Discussion :

Edition Master -Details


Sujet :

ADO.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Par défaut Edition Master -Details
    Salut,

    J'ai un application avec master/details. Je n'arrive pas a sauvegarder dans la BD la partie details. La propriété RowState des ligne reste toujours à unchanged.

    Donc, j'ai un dataset, les deux tables et la relation. Le master/detail fonctionne bien mais comment faire pour éditer le détails.

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Peut-on avoir un peu de code pour voir la façon dont tu sauvegarde vers la base de données ?

  3. #3
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Par défaut Enregistrement
    Salut,

    voici un peu de code ;

    1- Je charge mes tables et crée la relation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    _gUsr.AdaptTypeCmpt.Fill(dsGestionUsr.TypeCompte);
    _gUsr.AdaptUsagers.FillUsr(dsGestionUsr.Usagers);          _gUsr.AdaptCb.FillUsrCb(dsGestionUsr.UsagersCodeBudgetaire);
     
     drUsrCb = new DataRelation("relUsrCode",
                                          dsGestionUsr.Usagers.IdUsagersColumn,
           ///dsGestionUsr est le data set                                      
          dsGestionUsr.UsagersCodeBudgetaire.IdUsagersColumn, false);      
          dsGestionUsr.Relations.Add(drUsrCb);
     
          bsTypeCmpt.DataSource = dsGestionUsr;
          bsTypeCmpt.DataMember = "TypeCompte";
          comboBox1.DataSource = bsTypeCmpt;
     
          bsUser.DataSource = dsGestionUsr;//binding source 
          bsUser.DataMember = "Usagers";
     
          dgvUsrCb.DataSource = bsUser;
          dgvUsrCb.DataMember = "relUsrCode";
    2- sauvegarde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //finit edit
          bsUser.EndEdit();     
    //update avec adapteur pour table enfant
          _gUsr.AdaptCb.Update(dsGestionUsr.UsagersCodeBudgetaire);      
    // update avec adapteur pour la table parent
          _gUsr.AdaptUsagers.Update(dsGestionUsr.Usagers);   
          bsUser.ResetCurrentItem();
    lorsque j'arrête avec le déboggeur, la ligne de la table UsagerCodeBudgetaire est toujours a unchanged même si j'ai modifié quelque chose . et je vois les nouvelles valeur.

    Donc , je ne comprends pas ce qui se passe.

  4. #4
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Par défaut Réponse
    j'ai trouvé la réponse. Simple inversion de deux ligne.

    Il faut sauvegarder avec la méthode update du parent en premier et sauvergarde la table enfant en 2 ième. Du moins, avec cette inversion cela fonctionne.

    Peut-être , que quelqu'un peut valider ou donner une autre explication!

    Merci

    Citation Envoyé par sawbo1 Voir le message
    Salut,

    voici un peu de code ;

    1- Je charge mes tables et crée la relation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    _gUsr.AdaptTypeCmpt.Fill(dsGestionUsr.TypeCompte);
    _gUsr.AdaptUsagers.FillUsr(dsGestionUsr.Usagers);          _gUsr.AdaptCb.FillUsrCb(dsGestionUsr.UsagersCodeBudgetaire);
     
     drUsrCb = new DataRelation("relUsrCode",
                                          dsGestionUsr.Usagers.IdUsagersColumn,
           ///dsGestionUsr est le data set                                      
          dsGestionUsr.UsagersCodeBudgetaire.IdUsagersColumn, false);      
          dsGestionUsr.Relations.Add(drUsrCb);
     
          bsTypeCmpt.DataSource = dsGestionUsr;
          bsTypeCmpt.DataMember = "TypeCompte";
          comboBox1.DataSource = bsTypeCmpt;
     
          bsUser.DataSource = dsGestionUsr;//binding source 
          bsUser.DataMember = "Usagers";
     
          dgvUsrCb.DataSource = bsUser;
          dgvUsrCb.DataMember = "relUsrCode";
    2- sauvegarde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //finit edit
          bsUser.EndEdit();     
    //update avec adapteur pour table enfant
          _gUsr.AdaptCb.Update(dsGestionUsr.UsagersCodeBudgetaire);      
    // update avec adapteur pour la table parent
          _gUsr.AdaptUsagers.Update(dsGestionUsr.Usagers);   
          bsUser.ResetCurrentItem();
    lorsque j'arrête avec le déboggeur, la ligne de la table UsagerCodeBudgetaire est toujours a unchanged même si j'ai modifié quelque chose . et je vois les nouvelles valeur.

    Donc , je ne comprends pas ce qui se passe.

  5. #5
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Par défaut Fausse réponse
    En fait,

    Ma réponse précédente n'est pas valide .

    C'est l'ajout d'un autre item dans ma table enfant qui semble déclencher la modification.

    Si je modifie un item de la table enfant dans mon grid view et appuie sur enregistrer, cela ne fonctionne pas.

    si je modifie et change de ligne dans le grid view le rowstate de la ligne est Modified et la modification est effective.

    Donc, quelqu'un sait pourquoi? Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. UI Master-Detail et multiselect: la règle ?
    Par GoustiFruit dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/03/2008, 14h24
  2. Réponses: 6
    Dernier message: 26/10/2007, 11h04
  3. [Tomahawk] [dataTable] Master detail
    Par infonini dans le forum JSF
    Réponses: 3
    Dernier message: 06/09/2007, 11h42
  4. master detail -dbLookupComboBox
    Par atb dans le forum Bases de données
    Réponses: 1
    Dernier message: 10/04/2007, 18h23
  5. [Forms] Debugger/Pb canevas-relation Master/detail
    Par lafouine dans le forum Forms
    Réponses: 16
    Dernier message: 12/08/2005, 18h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo