DataGridView mit DataSet und Xml laden und speichern

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Michi14.

    DataGridView mit DataSet und Xml laden und speichern

    Hi Leute,

    ich habe das ganze Forum durchsucht, aber mir hat nichts weiter geholfen.

    Mein Ziel:

    Ein einfaches Verwaltungsprogramm, das in 3 Spalten Daten speichert beim Schließen und beim Laden wieder lädt.
    Ich verstehe nur nicht wie man das mit DataTable macht.

    Ich habe es schon versucht mit Read btw Write.Xml, aber es ging nicht.

    Würde mich freuen, wenn ihr mir helfen könntet.

    Mfg Michi
    Visual Basic 2010 Express. Geht der Code nicht irgendwie kürzer oder so, weil es sagen welche, dass es einfach mit ReadXml und WriteXml geht, aber das hab ich nicht geschafft.

    //EDIT:

    Ich bin schon bisschen weiter gekommen:

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. Main.ReadXml("C:\Fraps\bitte.xml")
    5. End Sub
    6. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    7. Main.WriteXml("C:\Fraps\bitte.xml")
    8. End Sub
    9. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    10. dgv.DataSource = Main
    11. End Sub
    12. End Class


    Es kommen keine Fehler, aber es lädt es auch nicht.

    Würde mich freuen wenn ihr mir helfen könntet.

    Mfg Michi

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Michi14“ ()

    main scheint ein Dataset zu sein. In einem Dataset sind viele Tabellen drin, nicht nur eine. Ein DGV kann man aber nur an eine Tabelle binden, ggfs. über eine BindingSource, aber immer nur eine Tabelle.

    guggemol "DatasetOnly" auf Movie-Tuts und Most Primitive und so Zeugs.
    Ich habe es jetzt so:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. DataTable1.WriteXml("C:\Fraps\bitte.xml")
    4. End Sub
    5. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    6. DataTable1.ReadXml("C:\Fraps\bitte.xml")
    7. End Sub
    8. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    9. DataGridView1.DataSource = DataTable1
    10. End Sub
    11. End Class


    Nur es funktioniert immer noch nicht. Muss ich die Spalten im DGV hinzufügen oder in der Table?

    Mfg Michi
    Das kann gehen - kommt drauf an, wo DataTable1 her ist. Ist allerdings, audh wenn es geht, höchstwahrscheinlich Grütze, denn DataTable1 ist vmtl. nicht typisiert.
    Warum es in deinem Fall nicht geht, kannichnich riechen, aber warum machst du es nicht einfach ebenso, wies in den lauffähigen Beispielen (post#6) vorgemacht ist?
    Ich habe das "DataSetOnly"-Flash Tutorial durchgemacht, nur ich will es mit einer Tabelle machen.

    Mein jetziger Code:

    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports Microsoft.VisualBasic.ControlChars
    3. Public Class Form1
    4. Private _DataFile As String = "DBSample.DataSet"
    5. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    6. Reload()
    7. End Sub
    8. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    9. Me.DBSampleDataSet.ReadXml(_DataFile)
    10. End Sub
    11. Private Sub Reload()
    12. Me.DBSampleDataSet.Clear()
    13. If File.Exists(_DataFile) Then
    14. Me.DBSampleDataSet.ReadXml(_DataFile)
    15. Else
    16. MsgBox(String.Concat( _
    17. "Leider (noch) kein DatenFile vorhanden", Lf, _
    18. "Sie können aber trotzdem fortfahren, und dann auch eines anlegen."))
    19. End If
    20. End Sub
    21. End Class
    Dazu einige Fragen:
    • Wozu in aller Welt diese vielen Leerzeilen? Dassis unleserlich - so erkennt man kaum, dasses eine Klasse ist mit 3 Methoden. Auch halbierst du gewissermaßen deine Bildschirmgröße, weil auf diese Weise kann der ja nurnoch halb so viele Zeilen anzeigen, und beim Proggen ists nunmal so: Je weniger man sieht, desto weniger sieht man.

    • Was soll Button2_Click? Macht das iwas anders als was in Button1_Click gemacht wird?

    • es fehlt ein Speichern-Button