Comment remplir un DataGrid à partir d'un fichier XML en VB.Net ??

Comment remplir un DataGrid à partir d'un fichier XML en VB.Net ?? - C#/.NET managed - Programmation

Marsh Posté le 18-06-2006 à 00:07:27    

Bonjour,
 
je voudrai remplir un datagrid avec des colonnes :
 
N° document | Type Doc | Description| Quantité
---------------------------------------------------
 
J'ai pu préparer mon DataSet mais le problème c kel DataTable je fais affecter au DataSource su DGrid ?  
 
J'ai fais plusieurs tests mais ca n'a pas donner la bonne résultat;  
Exemple1 :
Je prépare les champs de donnés de mon DataGrid et j'affecte le DataSet : myDataGrid.datasource=myDataSet  
Exemple2 :
J'affecte directement le DataTable 3: myDataGrid.datasource=myDataSet.DataTable(3)
=> Ca donne uniquement les champs  :  
|Document_No_ | FieldNumber | Caption          |  
---------------------------------------------
         2002       |      3          | Document No. |
 
Voici mon Doc Xml :
 
  <?xml version="1.0" encoding="utf-8" ?>  
- <ReplySet name="63286167084298021090980">
- <Reply type="RecordSet" name="Sales Line">
- <Sales_Line TableNumber="37" Caption="Sales Line">
  <Document_No_ FieldNumber="3" Caption="Document No.">2002</Document_No_>  
  <Type FieldNumber="5" Caption="Type">Item</Type>  
  <Description FieldNumber="11" Caption="Description">Loudspeaker, Cherry, 75W</Description>  
  <Quantity FieldNumber="15" Caption="Quantity">10</Quantity>  
  </Sales_Line>
- <Sales_Line TableNumber="37" Caption="Sales Line">
  <Document_No_ FieldNumber="3" Caption="Document No.">2002</Document_No_>  
  <Type FieldNumber="5" Caption="Type">Item</Type>  
  <Description FieldNumber="11" Caption="Description">Loudspeaker, Black, 120W</Description>  
  <Quantity FieldNumber="15" Caption="Quantity">6</Quantity>  
  </Sales_Line>
+ <Sales_Line TableNumber="37" Caption="Sales Line">
  <Document_No_ FieldNumber="3" Caption="Document No.">2002</Document_No_>  
  <Type FieldNumber="5" Caption="Type">Item</Type>  
  <Description FieldNumber="11" Caption="Description">Loudspeakers, White for PC</Description>  
  <Quantity FieldNumber="15" Caption="Quantity">20</Quantity>  
  </Sales_Line>
  </Reply>
  </ReplySet>
 
 
 
Merci pour votre aide

Message cité 1 fois
Message édité par FIFFO_Net le 18-06-2006 à 00:08:52
Reply

Marsh Posté le 18-06-2006 à 00:07:27   

Reply

Marsh Posté le 19-06-2006 à 17:56:55    

FIFFO_Net a écrit :

J'affecte directement le DataTable 3: myDataGrid.datasource=myDataSet.DataTable(3)
=> Ca donne uniquement les champs  :  
|Document_No_ | FieldNumber | Caption          |  
---------------------------------------------
         2002       |      3          | Document No. |


 
Regarde le nom de tes tables, tu devrais mieux comprendre.
Je suis sûr à 99% que c'est la "préparation" de ton DataSet qui ne convient pas.
Tu utilises quoi ?  mydataset.ReadXml  ?
 
 

Reply

Marsh Posté le 19-06-2006 à 18:11:50    

Salut,  :hello:  
 
Effectivement, j'utilise le ReadXml pour remplir ma DataSet, en effet mon service Web retourne un XmlNode que je transforme en XmlDocument ou XmlDataDocument.
 
Pour contourner ce probleme d' affichage, j'ai essai de parcourir tout les noeuds a l'aide d'un XmlNode sur mon  XmlNodeList pour me fabriquer un nouveau XmlDocument remplit dans le sens des elements du noeud child (fils).
Cette methode n'a pas reussit aussi  :cry:  
 
Avez vous une idee comment faire ?? je veux juste afficher ces elements dans ce tableau.
 
Merci beaucoup pour ton aide. ;)

Reply

Marsh Posté le 19-06-2006 à 20:00:35    

Pourquoi essayer de refaire un XmlDocument ?
Autant remplir directement ton DataSet "à la main".
 
Si on part du principe que :
- le format d'envoi du Xml ne changera pas
- les colonnes affichées par ton DataGrid ne changeront pas
 
* Tu créé une table dans ton DataSet (DataTable)
* Tu créé les bonnes colonnes dans ton DataSet (DataColumn)
* Tu lis ton XmlDocument
  - à chaque fois que tu trouves un élément à rajouter dedans
  - tu créé une ligne dans ton DataSet pour y coller les valeurs (DataRow)
 
Si tu n'est pas coutumier de ces petites bêtes là, y'a des dizaines de tuto partout sur le net. Au moins tu as les mot-clefs.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed