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 :

Enregistrer datagrid en xml


Sujet :

Windows Forms

  1. #1
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut Enregistrer datagrid en xml
    Bonjour,

    je souhaiterez exporter le contenu de mon datagrid vers un fichier XML
    j'ai trouver ce source en C#
    http://www.java2s.com/Code/CSharp/XM...ntoXMLfile.htm

    j'ai pris seulement ce qui m'interessé pour avoir ça:

    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
       Private Sub XMLToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles XMLToolStripMenuItem.Click
            Dim ds As DataSet = DataGrid_Histo.DataSource
     
            With SaveTab
                .Title = "Enregistrer"
                .InitialDirectory = "\\"
                .Filter = "Fichier XML (.xml)|*.xml|Tous les fichiers|*.*"
                .DefaultExt = "xml"
                .AddExtension = True
            End With
     
            If SaveTab.ShowDialog = Windows.Forms.DialogResult.OK Then
                If SaveTab.FileName.ToString <> "" Then
                    ds.WriteXml(SaveTab.FileName, XmlWriteMode.IgnoreSchema)
                End If
            End If
        End Sub
    mais je me retrouve avec un classique
    Une exception non gérée du type 'System.NullReferenceException' s'est produite dans app.exe

    Informations supplémentaires*: La référence d'objet n'est pas définie à une instance d'un objet.
    à cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ds.WriteXml(SaveTab.FileName, XmlWriteMode.IgnoreSchema)
    mais je trouve pas d'autre m'etonne pour faire ce que je veux

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Par défaut
    C'est une opération assez classique.
    As tu fait les vérifications élémentaires ? ton dataset est t il visualisable ? les détails de l'exception mis à part le message ?

    as tu essayer le faire le ds.WriteXml en mettant un chemin en dur pour tester (pas de savefiledialog) ?

  3. #3
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    Citation Envoyé par cybermaxs Voir le message
    C'est une opération assez classique.
    As tu fait les vérifications élémentaires ? ton dataset est t il visualisable ? les détails de l'exception mis à part le message ?

    as tu essayer le faire le ds.WriteXml en mettant un chemin en dur pour tester (pas de savefiledialog) ?
    oui j'ai testé le chemin en dur ça ne change rien,
    pour le dataset c'est la première que j'utilise ça
    mais si j'ai bien compris c'est les donnée contenu dans le datagridview que je stock dans un dataset... comment rendre visualisable si nécessaire?

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Par défaut
    Par hasard le Ds est il à Nothing ?

    Sinon pour le visualiser, utilise un espion et le visualize (loupe) à la fin de la première ligne.

  5. #5
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    oui le DS est à (aucun)
    en fait j'ouvre un fichier texte et je place mes donnée dans mon datagridview, je sais pas trop comment remplir le Datasource aussi

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Par défaut
    C'est donc le soucis. Ton dataset est null, donc il est normal d'avoir une exception.

    Un dataset est un moyen de stocker des données à la manière très simplifiée d'une base de donnée. La dataGrid ne va pas te générer toute seule un Dataset. C'est à toi de le créer et de lui passer en datasource pour la saisie.

    Selon ton code, la datagrid fera les opérations de CRUD sur ton dataset.

    En fin de traitement, tu auras un dataset dont la structure sera identique, mais dont le contenu aura changé.

  7. #7
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    j'ai fini par créer un dataset que je rempli comme je remplisser mon datagridview

    je les est bien associé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGrid_Histo.DataSource = DataSet1.Tables(0)
    pour l'enregistrement en XML c'est règle mais le problème c'est que ça m'affiche rien dans mon datagridview
    est-ce qu'il y a quelque chose à faire pour actualiser le contrôle? J'ai lu qu'en ASP.net il fallait faire un databind mais ça n'existe pas en VB.net...

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Par défaut
    Le databind n'est pas requis en winforms.

    es tu sûr d'avoir des données dans la table ? si tu fais l'affectation dans la datasource dans le load, il ne devrait pas y avoir de soucis.

    ps : as tu configuré les colonnes de la gridview ?

  9. #9
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    oui j'ai bien des donné, quand j'enregistre en XML mon fichier contient bien ce que je veux.
    Pour les colones je les est configuré dans le dataset donc je pensé que c'était inutile dans le datagrid, je l'ai fait est maintenant j'ai un

    Erreur lors de la création d un handle de fenêtre

Discussions similaires

  1. [DOM XML] Enregistrer un fichier XML sur un serveur ftp
    Par scorpion1611 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 12/09/2007, 15h33
  2. enregistrement de fichier XML dans une base SQL
    Par yelkam dans le forum XQUERY/SGBD
    Réponses: 1
    Dernier message: 18/07/2007, 08h58
  3. Réponses: 3
    Dernier message: 27/04/2007, 10h45
  4. [AJAX] Enregistrer un flux XML
    Par Bissada dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/06/2006, 17h52
  5. Enregistrer un fichier xml dans un string
    Par dondano dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 09/06/2006, 13h44

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