Probleme mit Datatable/Sortierung

  • VB.NET
  • .NET (FX) 4.0

    Probleme mit Datatable/Sortierung

    Hallo,

    ich stehe im Moment auf dem Schlauch. Sobald ich eine mehrspaltige Datatable sortiere kann ich diese nicht weiter befüllen/speichern.
    Beim Starten der Anwendung erstelle ich mehrere Datatables und befülle diese aus einer XML Datei:

    Quellcode

    1. Public dsGLWR As DataSet
    2. Public dtOrdner As DataTable, dtMitarbeiter As DataTable, dtZuordnung As DataTable, dtProtokoll As DataTable
    3. Public dvOrdner As DataView, dvMitarbeiter As DataView, dvZuordnung As DataView, dvProtokoll As DataView
    4. Sub fncTabelleAnlegen()
    5. dsGLWR = New DataSet("dsGLWR")
    6. dsGLWR.Namespace = "GLWR"
    7. dtOrdner = New DataTable("dtOrdner")
    8. With dtOrdner.Columns
    9. .Add("Ebene", GetType(Integer))
    10. .Add("Ordner", GetType(String))
    11. .Add("Tag", GetType(String))
    12. End With
    13. dsGLWR.Tables.Add(dtOrdner)
    14. dtMitarbeiter = New DataTable("dtMitarbeiter")
    15. With dtMitarbeiter.Columns
    16. .Add("Mitarbeiter", GetType(String))
    17. End With
    18. dsGLWR.Tables.Add(dtMitarbeiter)
    19. dsGLWR.ReadXml(strPfad & strDatei)
    20. End Sub


    Die Tabellen befülle ich mit

    Quellcode

    1. Dim row As DataRow = dtOrdner.NewRow
    2. row(0) = intEbene
    3. row(1) = strOrdner
    4. row(2) = ordner
    5. dtOrdner.Rows.Add(row)


    und erstelle die XML mit

    Quellcode

    1. dsGLWR.WriteXml(strPfad & strDatei)


    Soweit klappt alles. Sobald ich aber eine Sortierung einbaue treten Probleme auf:

    Quellcode

    1. dtOrdner.DefaultView.Sort = "Tag Asc"
    2. dtOrdner = dtOrdner.DefaultView.ToTable


    Ab diesen Punkt unterscheidet sich die Datatable dtOrdner von der im Dataset. Die im Dataset ist weiterhin unsortiert und es werden nach oben genannter Methode keine weiteren Datensätze angefügt. Da ich das komplette Dataset in die XML speichere werden natürlich auch keine Änderungen mehr gespeichert. Ich habe also so gesehen plötzlich 2 verschiedene Datatable: dtOrdner und dsGLWR.tables("dtOrdner").
    Hat jemand eine Idee woran das liegt? Oder sollte ich generell mit dem Verweis auf das Dataset arbeiten?

    MfG André