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#]Lecture d'un fichier XML


Sujet :

Windows Forms

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Par défaut [C#]Lecture d'un fichier XML
    Bonjour,

    J'ai un fichier XML qui se présente sous cette forme :

    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
    <GestionAbonnement>
      <Client NumCli="1" Nom="Dupond" Prenom="Jean-Claud" Rue="52 rue Gambetta" Code_postal="42000" Ville="Saint-Etienne" Telephone="0477561221" />
      <Client NumCli="2" Nom="Durand" Prenom="François" Rue="18 allée des pins" Code_postal="42152" Ville="L'Horme" Telephone="0477765616" />
      <Client NumCli="3" Nom="Martin" Prenom="Simone" Rue="12 avenue Charles de Gaulles" Code_postal="69000" Ville="Lyon" Telephone="0478955684" />
      <Client NumCli="4" Nom="Toto" Prenom="Jean" Rue="" Code_postal="42000" Ville="Saint-Etienne" Telephone="" />
      <Client NumCli="5" Nom="Dupond" Prenom="Jean" Rue="23 rue des essais bidons" Code_postal="42000" Ville="Saint-Etienne" Telephone="0477561221" />
      <Client NumCli="6" Nom="Durand" Prenom="François" Rue="128 rue des essais bidons" Code_postal="42152" Ville="L'Horme" Telephone="0477765616" />
      <Client NumCli="7" Nom="Martin" Prenom="Simone" Rue="10 rue des essais bidons" Code_postal="69000" Ville="Lyon" Telephone="0478955684" /> Telephone="4444444444" />
      <Magazine NumMag="1" Titre="Gameplay RPG" />
      <Magazine NumMag="2" Titre="PlayMag" />
      <Magazine NumMag="5" Titre="Console Max" />
      <Abonnement NumAbo="2" Refcli="3" Refmag="2" Prix="42" Duree="6 mois" />
      <Abonnement NumAbo="3" Refcli="1" Refmag="1" Prix="1" Duree="1 an" />
      <Abonnement NumAbo="5" Refcli="1" Refmag="1" Prix="45" Duree="1 an" />
    </GestionAbonnement>
    Mon but est de mettre à jour ma base de données à partir de ce fichier XML.
    Lorsque j'essaie de lire mon fichier, j'ai une erreur à partir du second if(monfichierxml.LocalName= =quelque chose). Lorsque j'en ai qu'un ca fonctionne niquel.

    Voici le code :

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    XmlTextReader fichierXml = new XmlTextReader(oFD.FileName);
                        fichierXml.WhitespaceHandling=WhitespaceHandling.None;
                        while (fichierXml.Read())
                        {
                            if (fichierXml.LocalName=="Client")
                            {
                                //on récupère chacun des attributs contenus dans les balises 'Client'
                                int num = Convert.ToInt32(fichierXml.GetAttribute("NumCli"));
                                string nom = fichierXml.GetAttribute("Nom");
                                string prenom = fichierXml.GetAttribute("Prenom");
                                string rue = fichierXml.GetAttribute("Rue");
                                string cp = fichierXml.GetAttribute("Code_postal");
                                string ville = fichierXml.GetAttribute("Ville");
                                string tel = fichierXml.GetAttribute("Telephone");
     
                                mesclients = new OleDbCommand();                       
                                mesclients = maCnx.CreateCommand();
                                mesclients.CommandText="SELECT idcli FROM client";
                                drclients=mesclients.ExecuteReader();
                                while(drclients.Read())
                                {
                                    if(drclients.GetInt32(0)==num)
                                    {
                                        numexistant=num;
                                    }
                                }
                                drclients.Close();
                                mesclients.Dispose();
     
                                try
                                {
                                    if(numexistant==num)
                                    {
                                        maj = new OleDbCommand();
                                        maj = maCnx.CreateCommand();
                                        maj.CommandText="UPDATE client SET nom='"+nom+"',prenom='"+ prenom+"',rue='"+rue+"',codepostal='"+cp+"',ville='"+ville+"',tel='"+tel+"' WHERE idcli="+num;
                                        maj.ExecuteNonQuery();
                                        maj.Dispose();
                                    }
                                    else
                                    {
                                        insertion = new OleDbCommand();
                                        insertion = maCnx.CreateCommand();
                                        insertion.CommandText = "INSERT INTO client VALUES ("+num+", '"+nom+"','"+prenom+"','"+rue+"','"+cp+"','"+ville+"','"+tel+"')";
                                        insertion.ExecuteNonQuery();
                                        insertion.Dispose();
                                    }
                                }
                                catch (SqlException erreur)
                                {
                                    MessageBox.Show(erreur.Message);
                                }
                                bool tp=fichierXml.MoveToNextAttribute();
                            }
     
                            if (fichierXml.LocalName=="Magazine")
                            {
                                //on récupère chacun des attributs contenus dans les balises 'Magazine'
                                int num = Convert.ToInt32(fichierXml.GetAttribute("NumMag"));
                                string titre = fichierXml.GetAttribute("Titre");
     
                                mesmag = new OleDbCommand();                       
                                mesmag = maCnx.CreateCommand();
                                mesmag.CommandText="SELECT idmag FROM magazine";
                                drmag=mesmag.ExecuteReader();
                                while(drmag.Read())
                                {
                                    if(drmag.GetInt32(0)==num)
                                    {
                                        numexistant=num;
                                    }
                                }
                                drmag.Close();
                                mesmag.Dispose();
     
                                try
                                {
                                    if(numexistant==num)
                                    {
                                        maj = new OleDbCommand();
                                        maj = maCnx.CreateCommand();
                                        maj.CommandText="UPDATE magazine SET nommag='"+titre+"' WHERE idmag="+num;
                                        maj.ExecuteNonQuery();
                                        maj.Dispose();
                                    }
                                    else
                                    {
                                        insertion = new OleDbCommand();
                                        insertion = maCnx.CreateCommand();
                                        insertion.CommandText = "INSERT INTO magazine VALUES ("+num+", '"+titre+"')";
                                        insertion.ExecuteNonQuery();
                                        insertion.Dispose();
                                    }
                                }
                                catch (SqlException erreur)
                                {
                                    MessageBox.Show(erreur.Message);
                                }
                                bool tp=fichierXml.MoveToNextAttribute();
                            }
    Je n'ai pas mis le if pour l'abonnement vu que c'est le même principe que le reste.

    Voici l'erreur que je génère avec mon try catch :
    http://www.developpez.net/forums/att...1&d=1150363305

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    				catch(Exception erreur)
    				{
    					MessageBox.Show(erreur.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
    				}
    Désolé pour la longueur du code : /
    Si quelqu'un pouvait m'aider rapidement,ça serait super, la je suis en train de péter un cable

    Merci d'avance
    Images attachées Images attachées  

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

Discussions similaires

  1. Problème de lecture d'un fichier XML d'InfoPath
    Par snadus dans le forum InfoPath
    Réponses: 7
    Dernier message: 06/06/2006, 14h45
  2. Lecture d'un fichier XML de config avec Java
    Par cofy dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 31/01/2006, 15h54
  3. Problème de lecture dans un fichier xml
    Par Pyra dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2005, 00h13
  4. Probleme de lecture d'un fichier XML
    Par chleuh dans le forum Langage
    Réponses: 8
    Dernier message: 30/08/2005, 12h04
  5. [C#] [XML] Lecture d'un fichier XML => Combobox
    Par Chad`Chiwa dans le forum Windows Forms
    Réponses: 8
    Dernier message: 09/03/2005, 08h57

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