XmlReader DataGridView翻转列和行

时间:2015-06-17 18:49:06

标签: xml vb.net datagridview

使用VB.NET我使用此代码将DataGridView绑定到XML文件(用于读取和写入)

全局:

Dim ds As New DataSet
Dim sFile As String = "C:\test.xml"

读:

Using xmlFile As XmlReader = XmlReader.Create(sFile, New XmlReaderSettings())
    ds.ReadXml(xmlFile)
    gridData.DataSource = ds.Tables("data")
End Using

写作:

ds.WriteXml(sFile)

以下是XML的样子。现在请记住,我完全控制XML的布局,并可以更改它以适合我的代码:

<?xml version="1.0"?>
<template validation="validationgoeshere">
    <data>
        <digit1>0.507874</digit1>
        <digit2>545541</digit2>    
        <somevalue>78</somevalue>
        <blah>0.015</blah>
        <emptyexample />
    </data>
</template>

我试图只显示一列“数据”,我希望“数据”中的所有元素都显示为为行(带有适当的值 - innerXML)。我不想硬编码/指定行,它们需要自动填充“数据”中的任何内容。 目前它显示一行和多列;我怎么能“翻转”它们?

1 个答案:

答案 0 :(得分:0)

我的最终代码(工作):

 Public Function FlipDataSet(my_DataSet As DataSet) As DataSet
    Dim ds As New DataSet()

    For Each dt As DataTable In my_DataSet.Tables
        Dim table As New DataTable()

        table.Columns.Add(New DataColumn("f"))
        table.Columns.Add(New DataColumn("v"))

        Dim r As DataRow
        For k As Integer = 0 To dt.Columns.Count - 1
            r = table.NewRow()
            r(0) = dt.Columns(k).ToString()
            For j As Integer = 1 To dt.Rows.Count
                r(j) = dt.Rows(j - 1)(k)
            Next
            table.Rows.Add(r)
        Next
        ds.Tables.Add(table)
    Next

    Return ds
End Function