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

Windows Forms Discussion :

[C#] Comment récupérer les éléments d'un dataset qui a des tables imbriquées ?


Sujet :

Windows Forms

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut [C#] Comment récupérer les éléments d'un dataset qui a des tables imbriquées ?
    Bonjour à tous !


    J'ai le fichier xml suivant:

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
     
     
    <MESSAGE>
    	<ID_FOURNISSEUR>ID_FOURNISSEUR</ID_FOURNISSEUR>
    	<DTM>DTM</DTM>
      <ORDERS>
    	<BGM>BGM1</BGM>
    	<DTM137>DTM137</DTM137>
      <DTM2>DTM20</DTM2>
      <LIN>
    		<CODE_ARTICLE_FOURNISSEUR_EAN>1234567893145</CODE_ARTICLE_FOURNISSEUR_EAN>
    		<CODE_ARTICLE_FOURNISSEUR>F1</CODE_ARTICLE_FOURNISSEUR>
    		<REF_ARTICLE_CLIENT>C1</REF_ARTICLE_CLIENT>
    		<QTY>45</QTY>
    		<IMDF>sdfdf</IMDF>
    		<PRI>sdfsdfsd</PRI>
    	</LIN>
    		<LIN>
    		<CODE_ARTICLE_FOURNISSEUR_EAN>2365854785452</CODE_ARTICLE_FOURNISSEUR_EAN>
    		<CODE_ARTICLE_FOURNISSEUR>F2</CODE_ARTICLE_FOURNISSEUR>
    		<REF_ARTICLE_CLIENT>C2</REF_ARTICLE_CLIENT>
    		<QTY>20</QTY>
    		<IMDF>sdf</IMDF>
    		<PRI>5f45</PRI>
    	</LIN>
    	<LIN>
    		<CODE_ARTICLE_FOURNISSEUR_EAN>3458569545212</CODE_ARTICLE_FOURNISSEUR_EAN>
    		<CODE_ARTICLE_FOURNISSEUR>F3</CODE_ARTICLE_FOURNISSEUR>
    		<REF_ARTICLE_CLIENT>C3</REF_ARTICLE_CLIENT>
    		<QTY>1</QTY>
    		<IMDF></IMDF>
    		<PRI></PRI>
    	</LIN>
    </ORDERS>
    	<ORDERS>
    	<BGM>BGM2</BGM>
    	<DTM137>DTM137</DTM137>
      <DTM2></DTM2>
      <LIN>
    		<CODE_ARTICLE_FOURNISSEUR_EAN>1234567891011</CODE_ARTICLE_FOURNISSEUR_EAN>
    		<CODE_ARTICLE_FOURNISSEUR></CODE_ARTICLE_FOURNISSEUR>
    		<REF_ARTICLE_CLIENT></REF_ARTICLE_CLIENT>
    		<QTY>1</QTY>
    		<IMDF></IMDF>
    		<PRI></PRI>
    </LIN>
    </ORDERS>
     
    </MESSAGE>

    J'ai mis ce fichier xml dans un dataset.

    Mais je n'arrive pas à récupérer Les lignes correspondant à une commande
    Je récupère tous les <LIN> alors que je veux seulement les <LIN> qui sont dans un <ORDERS>

    Exemple d'après le fichier xml ci-dessus:
    Pour l'orders dont le BGM est BGM1, je devrait récupérer 3 éléments <LIN>.
    Pour le second orders dont le BGM est BGM2, je devrait récupérer 1 élement <LIN>

    Comment faire cela ??
    Merci beaucou pour votre aide !!!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut
    Bonjour,
    J'ai fini par trouver.
    il fallait utiliser la méthode getChildRows(RelationName)

    Ainsi, on récupère bien les éléments <LIN> enfants d'un éléement <ORDERS> comme suit:
    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
     
     
     
            private void LIN(int OrderNumber)
            {
                    DataRow[] drow =  _ds.Tables["ORDERS"].Rows[OrderNumber].GetChildRows("ORDERS_LIN");
                    for (int i = 0; i < drow.Length; i++)
                    {
     
                        Console.Out.WriteLine("----- LIN " + i + "----- ");
                        Console.Out.WriteLine("CAFE :" + drow[i].ItemArray.GetValue(0));
                        Console.Out.WriteLine("CAF :" + drow[i].ItemArray.GetValue(1));
                        Console.Out.WriteLine("REF :" + drow[i].ItemArray.GetValue(2));
                        Console.Out.WriteLine("QTY :" + drow[i].ItemArray.GetValue(3));
                        Console.Out.WriteLine("IMDF :" + drow[i].ItemArray.GetValue(4));
                        Console.Out.WriteLine("PRI :" + drow[i].ItemArray.GetValue(5) + "\n");
                    }
     
            }
    Bonne journée !

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

Discussions similaires

  1. Comment récupérer les éléments postés depuis AngularJS
    Par kplaricos dans le forum MkFramework
    Réponses: 1
    Dernier message: 29/04/2015, 15h52
  2. Réponses: 1
    Dernier message: 14/08/2011, 04h24
  3. Comment récupèrer les éléments d'une JList
    Par Orian dans le forum Composants
    Réponses: 13
    Dernier message: 10/09/2006, 11h53
  4. Comment récupérer les éléments d'un getComments
    Par AlexandraS dans le forum Langage
    Réponses: 6
    Dernier message: 31/05/2006, 11h21
  5. Comment récupérer les éléments d'un autre programme ?
    Par Henri_13 dans le forum API, COM et SDKs
    Réponses: 22
    Dernier message: 29/11/2005, 00h16

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