Avatar billede KLS Novice
29. august 2004 - 18:50 Der er 7 kommentarer og
1 løsning

Problemer med XML fil og DataSet

Heysa jeg sidder og bøvler med et lille problem, som det HASTER at få løst......  det er at jeg har en XML fil som ser sådanne ud :
<?xml version="1.0" standalone="yes"?>
<ConfigOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<configValues OptionName="SERVERIP_PORT">127.0.0.1:27015</configValues>
<configValues OptionName="SERVERNAME">HOSTNAME</configValues>
<configValues OptionName="SERVER_USERS">0</configValues>
</ConfigOpt>

Dette vil jeg gerne kunne importere ind i et dataset, hvor jeg så kan hente data fra. da jeg så vil spare en del fil læsning.

Hvordan gøres dette lettest og hurtigst ?

Det skal lige siges at den fil måske nok skal indeholde 1000 poster, men jeg ved ikke om det har noget at sige.

og samtidig hvordan opdatere jeg fra Dataset'et til XML filen

Det var det for nu..
Avatar billede KLS Novice
29. august 2004 - 22:17 #1
Hvis det ellers kan laves på en anden og smartere måde må i da også godt komme med et svar til denne, da jeg ser det som samme problem stilling, da jeg ikke lige ved hvordan jeg skal håndtere filer med settings / info i forhold til et dataset, som skal bruges til at hente information ind i et listview felt.
Avatar billede arne_v Ekspert
30. august 2004 - 09:47 #2
Har du set på:

ds.ReadXML("minfil.xml")

og

ds.WriteXML("minfil.xml")

?
Avatar billede KLS Novice
30. august 2004 - 15:48 #3
Nej men jeg skal også lige ha smidt det ind i et dataset og det er nok der mit største problem lige pt. er.. det er det dumme dataset, som driller mig helt vildt :(
Avatar billede KLS Novice
30. august 2004 - 15:50 #4
Så jeg slettede bare al min dataset kode i går i ren frustration over dette :( så.... hjælp mig lidt i den rigtige retning .. om kring det at hente og skrive til og fra dataset over i XML filer og dataset.

jeg ved med database over til dataset bruger man dataset.fill(data) eller noget i den stil men jeg ved sku ikke når det er xml så er det lidt et større problem for mig.
Avatar billede arne_v Ekspert
30. august 2004 - 19:03 #5
Du kan læse fra XML ind i et data set med ReadXML metoden.
Avatar billede KLS Novice
30. august 2004 - 23:21 #6
Hej Arne v

Det virkede sku efter jeg havde siddet og skumlet lidt.

Vil du lige smide et svar så du kan få nogle point ?
Avatar billede KLS Novice
30. august 2004 - 23:23 #7
Til folk som vil se hvad løsningen er så ser det sådan ud :


    Public Overloads Function ReadXml(ByVal stream As Stream) As XmlReadMode

    End Function
    Private Sub DemonstrateReadWriteXMLDocumentWithFileStream()
        ' Create a DataSet with one table and two columns.
        Dim OriginalDataSet As New DataSet("myDataSet")
        Dim myTable As New DataTable("myTable")
        Dim c1 As New DataColumn("id", Type.GetType("System.Int32"))
        c1.AutoIncrement = True
        Dim c2 As New DataColumn("item")
        myTable.Columns.Add(c1)
        myTable.Columns.Add(c2)
        OriginalDataSet.Tables.Add(myTable)
        ' Add ten rows.
        Dim newRow As DataRow
        Dim i As Integer
        For i = 0 To 9
            newRow = myTable.NewRow()
            newRow("item") = "item " + i.ToString()
            myTable.Rows.Add(newRow)
        Next i
        OriginalDataSet.AcceptChanges()
        ' Print out values of each table in the DataSet using the
        ' function defined below.
        PrintValues(OriginalDataSet, "Original DataSet")
        ' Write the schema and data to XML file with FileStream.
        Dim xmlFilename As String = "myXmlDocument.xml"
        Dim fsWriteXml As New System.IO.FileStream _
          (xmlFilename, System.IO.FileMode.Create)
        ' Use WriteXml to write the XML document.
        OriginalDataSet.WriteXml(fsWriteXml)
        ' Close the FileStream.
        fsWriteXml.Close()

        ' Dispose of the original DataSet.
        OriginalDataSet.Dispose()
        ' Create a new DataSet.
        Dim newDataSet As New DataSet("New DataSet")

        ' Read the XML document back in.
        ' Create new FileStream to read schema with.
        Dim fsReadXml As New System.IO.FileStream _
          (xmlFilename, System.IO.FileMode.Open)

        newDataSet.ReadXml(fsReadXml)
        ' Print out values of each table in the DataSet using the
        ' function defined below.
        PrintValues(newDataSet, "New DataSet")
    End Sub


    Private Sub PrintValues(ByVal ds As DataSet, ByVal label As String)
        RichTextBox1.Text = (ControlChars.Cr + label)
        Dim t As DataTable
        Dim r As DataRow
        Dim c As DataColumn
        For Each t In ds.Tables
            RichTextBox1.Text = RichTextBox1.Text & ("TableName: " + t.TableName)
            For Each r In t.Rows
                For Each c In t.Columns
                    RichTextBox1.Text = RichTextBox1.Text & (ControlChars.Tab + " " + r(c).ToString())
                Next c
                '                Console.WriteLine()
            Next r
        Next t
    End Sub



Skal siges at jeg ændrede til Richtextbox istedet for Console.Write

så det er det eneste jeg har modificeret.
Avatar billede arne_v Ekspert
31. august 2004 - 11:26 #8
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester