Bonjour, je souhaite convertir une base de données Access en fichier Xml.
L'idée de générer un fichier Xml par table présente dans la base de données.
J'ai donc une fonction qui à une DataTable en paramètre et qui est censée parcourir chaque ligne de la table. Le problème est que je n'arrive pas à entrer dans ma boucle For Each.

voici mon code pour l'instant :

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
 
Public Function createXml(ByVal maTable As DataTable)
        ' création du fichier
        Dim FileXML As New System.IO.StreamWriter(My.Settings.RepSortie & "\" & maTable.TableName & ".xml", False, System.Text.Encoding.UTF8)
        ' déclaration du fichier xml
        Dim XmlDoc As Xml.XmlDocument = New Xml.XmlDocument()
        ' création du document
        XmlDoc.LoadXml("<" & maTable.TableName.ToString & ">" & "</" & maTable.TableName.ToString & ">")
        Dim nbColonne As Integer = maTable.Columns.Count
 
        Dim uneLigne As DataRow
        Dim mesLignes As DataRowCollection
        mesLignes = maTable.Rows
 
        ' !!!!!!!! le problème c'est ici !!!!!!!!!!!
        For Each uneLigne In mesLignes
            ' ElemRef pour le noeud [Ref][/Ref]
            Dim elemRef As Xml.XmlElement
            elemRef = XmlDoc.CreateElement(uneLigne(0).ToString)
 
            Dim elem(nbColonne) As Xml.XmlElement
            For i As Integer = 1 To (nbColonne - 1)
                elem(i) = XmlDoc.CreateElement(uneLigne(i).ToString)
                elemRef.AppendChild(elem(i))
            Next
            XmlDoc.DocumentElement.AppendChild(elemRef)
        Next
 
        'Enregistrement du fichier Xml
        XmlDoc.Save(Application.StartupPath & maTable.TableName & ".XML")
        MsgBox("Enregistrement réussi pour la table " & maTable.TableName)
 
        Return FileXML
    End Function
J'obtiens bien des fichiers Xml mais vides...
Quelqu'un voit où est le problème ?