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

C# Discussion :

Charger du XML dans un DataSet et mettre les données dans un combobox


Sujet :

C#

  1. #1
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut Charger du XML dans un DataSet et mettre les données dans un combobox
    Bonsoir,

    J'ai actuellement un fichier XML suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0" encoding="utf-8" ?>
    <area>
      <item id="0"></item>
      <item id="1"></item>
      <item id="2"></item>
    </area>
    Avec le Schema suivant (généré avec VS 2008):

    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="area">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" name="item">
              <xs:complexType>
                <xs:attribute name="id" type="xs:unsignedByte" use="required" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
    Pour charger ce fichier dans mon DataSet, pas très compliqué selon la doc de Microsoft:

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    XMLQueriesRepository.LoadXMLFile(@"./../../Data/"+Program.__ProjectsXMLFile);
                DataSet dsSet = new DataSet();
                dsSet.ReadXml(@"./../../Data/" + Program.__ProjectsXMLFile, XmlReadMode.ReadSchema);
                MessageBox.Show(dsSet.Tables.Count.ToString());

    Sauf que, mon DataSet ne contient aucune donnée?!

    Est-ce normale sachant que c'est même documenté par Microsoft?

    L.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Août 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2010
    Messages : 164
    Points : 220
    Points
    220
    Par défaut
    Soit tu fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DataSet ds = new DataSet();
    ds.ReadXmlSchema(@"c:\dataset.xsd");
    ds.ReadXml(@"c:\dataset.xml",XmlReadMode.ReadSchema);
    ou alors ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DataSet ds = new DataSet();
    ds.ReadXml(@"c:\dataset.xml");

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Août 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2010
    Messages : 164
    Points : 220
    Points
    220
    Par défaut
    J'ai oublié ceci pour remplir la combo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    comboBox1.DataSource = ds.Tables[0];
    comboBox1.ValueMember = "id";
    comboBox1.DisplayMember = "id";

  4. #4
    Membre du Club
    Profil pro
    Coach Agile
    Inscrit en
    Avril 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Coach Agile

    Informations forums :
    Inscription : Avril 2008
    Messages : 43
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par tontonks Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    comboBox1.DataSource = ds.Tables[0];
    comboBox1.ValueMember = "id";
    comboBox1.DisplayMember = "id";

    Tu dois être en WPF vue la syntaxe pour le combos (Ignore moi si je me trompe)
    Mais pour le binding en WPF il me semble que c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    comboBox1.SelectedValuePath = "id";
    comboBox1.DisplayMemberPath= "id";
    Enfin moi c'est ce que j'utilise et cela fonctionne

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Août 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2010
    Messages : 164
    Points : 220
    Points
    220
    Par défaut
    non non ce n'est pas en wpf, c'est du winforms et ça fonctionne

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Août 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2010
    Messages : 164
    Points : 220
    Points
    220
    Par défaut
    J'en appelle à la courageuse personne qui a massivement voté de façon négative sur presque toutes les réponses de ce post.

    Pourrait-elle se manifester et exprimer ses motivations ?

    Merci d'avance

  7. #7
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Hello,

    Je viens de tester à l'instant, et ça marche merci Voici le code:

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    XMLQueriesRepository.LoadXMLFile(@"./../../Data/"+Program.__ProjectsXMLFile);
                DataSet dsSet = new DataSet();
                dsSet.ReadXml(@"./../../Data/Projects.xsd");
                dsSet.ReadXml(@"./../../Data/" + Program.__ProjectsXMLFile, XmlReadMode.ReadSchema);
     
                cbxRelatedProject.DataSource = dsSet.Tables[0];
                cbxRelatedProject.ValueMember = "item_text";
                cbxRelatedProject.DisplayMember = "item_text";

    Après quelques petites modifs, ça marche

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/05/2012, 09h40
  2. [XL-2003] mettre les données dans la prochaine ligne vide
    Par Fredo10 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/03/2010, 21h17
  3. mettre les données dans un buffer
    Par mazodo dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 22/08/2008, 00h53
  4. Réponses: 2
    Dernier message: 22/05/2008, 12h37

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