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

VB.NET Discussion :

Import et export spécial dans "datagridview" avec colonne déclaré par défaut [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Par défaut Import et export spécial dans "datagridview" avec colonne déclaré par défaut
    Bonjour à tous
    Je suis en train de réaliser un petit projet pour mon boulot

    Je travail avec eplan P8 qui à une interface type API ou je peux créer des addins en vb.net ou en c#

    Je suis actuellement avec visual studio 2010 au boulot et à la maison 2013.

    Mon projet, consiste à se que l’utilisateur créer des donnée dans une datagridview, ou il pourra exporter ces données en fichier xml « créer un template » et importer le xml ou
    importer directement ces données ‘datagridview’ dans le projet eplan p8 cette dernière étape est pour l’instant pas primordial

    Remarque : le fichier Template d’import ou export ne doit pas être exclusivement du xml
    S’il y a une autre méthode plus facile en .ini ou .txt ou dite le moi


    Etape 1 : Créer des lignes de donnée dans un datagridview avec deux colonnes déclaré par défaut » introduire les données avec un bouton et 2 textbox qui permettent de mettre
    les données dans la datagridview

    J’ai réussi cette étape

    Etape 2 : Supprimer les lignes dans une datagridview

    J’ai réussi cette étape

    Etape 3 : Exporter et importer les données créées dans la « datagridview » par l’utilisateur en fichier xml

    C’est ici que ça coince j’ai trouvé sur le web une méthode pour pouvoir exporter et importer en xml

    Voir code ci-dessous ou ici http://www.v-basic.net/2011/04/xml-i...nd-export.html

    Mais cette méthode ne me convient pas parce que ça implique que ma datagridview est vide, donc aucune colonne ne soie déclaré, cette méthode utilise les colonnes et les données qui se trouve dans un fichier xml = le fichier lui-même est une base de donnée.

    Est-ce qu’il est possible d’exporter des données d’une datagridview créé par l’utilisateur ?
    Est-ce que vous avez une autre méthode ?

    Merci d’avance pour vos réponses et votre aide

    Cordialement rodeo

    Voici une image + code

    Nom : Form1.png
Affichages : 590
Taille : 49,6 Ko

    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
    Imports System.Xml
    Imports System.Data
    Imports System.IO
     
    Public Class Form1
     
    #Region "import"
        Private Sub Button1_Import(sender As Object, e As EventArgs) Handles Button_Import.Click
            'create a openfile dialog
            Dim open_file As New OpenFileDialog
            'give its filter
            open_file.Filter = "Files (*.xml) | *.xml"
            Try
                'if ok click at opendialog
                If open_file.ShowDialog() = DialogResult.OK Then
                    'define a xml reader
                    Dim xmlFile As XmlReader
                    'get xml data from the path
                    xmlFile = XmlReader.Create(open_file.FileName, New XmlReaderSettings())
                    'define a new dataset
                    Dim ds As New DataSet
                    'read xml data
                    ds.ReadXml(xmlFile)
                    'show xml data in datagridview
                    DataGridView1.DataSource = ds.Tables(0)
                End If
            Catch ex As Exception
                'if any problem show error
                MsgBox(ex.Message)
            End Try
     
        End Sub
    #End Region
    #Region "export"
        Private Sub Button2_Export(sender As Object, e As EventArgs) Handles Button_Export.Click
            'define a save dialog
            Dim save_file As New SaveFileDialog
            'give its extension
            save_file.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*"
            'select xml
            save_file.FilterIndex = 1
            'create a datatable
            Dim my_datatable As New DataTable
            'if ok click
            If save_file.ShowDialog() = DialogResult.OK Then
                'get datagridview source to datatable
                my_datatable = CType(DataGridView1.DataSource, DataTable)
                'save datatable with xml format
                my_datatable.WriteXml(save_file.FileName)
            End If
        End Sub
    #End Region
     
    #Region "insert and delete"
        Private Sub Button3_Insert(sender As Object, e As EventArgs) Handles Button_Insert.Click
            Me.DataGridView1.Rows.Add(TextBox1.Text, TextBox2.Text)
            DataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGreen
        End Sub
     
        Private Sub Button_delete_Click(sender As Object, e As EventArgs) Handles Button_delete.Click
            If DataGridView1.SelectedRows.Count > 0 Then
                For i As Integer = DataGridView1.SelectedRows.Count - 1 To 0 Step -1
                    DataGridView1.Rows.RemoveAt(DataGridView1.SelectedRows(i).Index)
                Next
            Else
                MessageBox.Show("Rows no selected")
            End If
        End Sub
    #End Region
     
    End Class

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Je ne suis pas sûr que ce soit LA solution à ton problème, mais le DataSet et le DataTable ont chacun une méthode WriteXml qui permet de les sauvegarder, et une méthode ReadXml qui permet der les relire, avec une ou deux lignes de code. Même que tu ajouter le schéma à ton fichier.

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Bonjour,

    Je ne suis pas sûr que ce soit LA solution à ton problème, mais le DataSet et le DataTable ont chacun une méthode WriteXml qui permet de les sauvegarder, et une méthode ReadXml qui permet der les relire, avec une ou deux lignes de code. Même que tu ajouter le schéma à ton fichier.
    Bonjour
    Merci pour ta réponse

    Est-ce que je dois déclarer mes colonnes et mes lignes à l'avance pour pouvoir l'exporter et importer en xml ? en sachant que les 2 colonnes DT et designation sont déjà déclarer
    Je continue à chercher...

    Si quelqu'un à une solution merci d'avance
    je ne de mande pas un code tout fais c'est pas du tout productif et comme je suis débutant ça na pas d'intérêt pour moi.

    Merci
    Cordialement rodeo

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Par défaut
    Citation Envoyé par RodeoGame Voir le message
    Bonjour
    Merci pour ta réponse

    Est-ce que je dois déclarer mes colonnes et mes lignes à l'avance pour pouvoir l'exporter et importer en xml ? en sachant que les 2 colonnes DT et designation sont déjà déclarer
    Je continue à chercher...

    Si quelqu'un à une solution merci d'avance
    je ne de mande pas un code tout fais c'est pas du tout productif et comme je suis débutant ça na pas d'intérêt pour moi.

    Merci
    Cordialement rodeo
    J'ai trouver la solution pour celui qui veux
    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
    #Region "Import and Export Xml"
        Private Sub Button_Import_XML_Click(sender As Object, e As EventArgs) Handles Button_Import_XML.Click
            'create a openfile dialog
            Dim open_file As New OpenFileDialog
            'give its filter
            open_file.Filter = "Files (*.xml) | *.xml"
            Try
     
                'if ok click at opendialog
                If open_file.ShowDialog() = DialogResult.OK Then
                    'define a xml reader
                    Dim xmlFile As XmlReader
                    'get xml data from the path
                    xmlFile = XmlReader.Create(open_file.FileName)
                    'define a new dataset
                    Dim ds As New DataSet
                    'read xml data
                    ds.ReadXml(xmlFile)
                    For Each item As DataRow In ds.Tables("PartImport").Rows
                        Dim n As Integer = DataGridView1.Rows.Add()
                        DataGridView1.Rows(n).Cells(0).Value = item("DTFULL").ToString()
                        DataGridView1.Rows(n).Cells(1).Value = item("PARTNUMBER").ToString()
                    Next
     
                End If
     
            Catch ex As Exception
                'if any problem show error
                MsgBox(ex.Message)
            End Try
        End Sub
     
        Private Sub Button_Export_XML_Click(sender As Object, e As EventArgs) Handles Button_Export_XML.Click
            'define a save dialog
            Dim save_file As New SaveFileDialog
            'give its extension
            save_file.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*"
            'select xml
            save_file.FilterIndex = 1
     
            Dim ds As New DataSet()
            Dim dt As New DataTable()
            dt.TableName = "PartImport"
            dt.Columns.Add("DTFULL")
            dt.Columns.Add("PARTNUMBER")
            ds.Tables.Add(dt)
     
            For Each r As DataGridViewRow In DataGridView1.Rows
                Dim row As DataRow = ds.Tables("PartImport").NewRow()
                row("DTFULL") = r.Cells(0).Value.ToString()
                row("PARTNUMBER") = r.Cells(1).Value.ToString()
                ds.Tables("PartImport").Rows.Add(row)
            Next
     
            Try
                If save_file.ShowDialog() = DialogResult.OK Then
                    ds.WriteXml(save_file.FileName)
                End If
     
            Catch ex As Exception
                'if any problem show error
                MsgBox(ex.Message)
            End Try
     
        End Sub
    #End Region

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

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