Datagridview mit Datatable speichern

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Datagridview mit Datatable speichern

    Hallo ich bin ein Neuling in Sachen DGV und habe mich schon etwas umgeschaut, jedoch lässt sich mein Problem nirgends finden.

    Ich habe zuerst eine LIst (of Class) an die DGV geunden, jedoch festgestellt, dass dies eher unpraktisch ist.

    Dann habe ich eine Binding LIst (of Class) an die DGV gebunden und festfestellt, dass das sehr kompatibel ist, jedoch konnte ich den Ihnalt der DGV nicht über die Bindinglist speichern bzw die Binding LIst nicht an eine Datatable binden oder wie auch immer man das macht..

    Also habe ich eine schlichte Datatable erstellt (mit einem tränenden Auge um die Binding list), wo die DGV auch gespeichert wird, jedoch ist der Ihnalt dann einfach nicht vorhanden, also die XML-Datei ist dann einfach nicht so wie sie sein sollte...

    hier der Code

    VB.NET-Quellcode

    1. Imports System.io
    2. Public Class Form3
    3. Dim d_datenspeicher As New DataTable
    4. Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    5. d_datenspeicher.TableName = "d_fische"
    6. tabelle1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
    7. tabelle1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
    8. tabelle1.DataSource = d_datenspeicher
    9. End Sub
    10. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    11. tabelle1.Rows(0).Cells(0).Value = TextBox1.Text
    12. tabelle1.Rows(0).Cells(1).Value = TextBox2.Text
    13. tabelle1.Rows(0).Cells(2).Value = TextBox3.Text
    14. End Sub
    15. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    16. Dim _datafile As New FileInfo(Pfad" & d_datenspeicher.TableName & ".xml")
    17. d_datenspeicher.WriteXml(_datafile.FullName)
    18. End Sub

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

    Visual_Prog schrieb:

    jedoch lässt sich mein Problem nirgends finden.
    Glaub ich Dir aufs Wort. ;)
    Du musst DSeine Daten nicht dem DGV, sondern der DataTable hinzufügen.
    Zuerst musst Du allerdings die DataTable konfogurieren, ihr die Spalten hinzufügen.
    Gugst Du z.B. hier:
    Differenz in Prozent ausrechnen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    danke so klappt es.

    VB.NET-Quellcode

    1. Imports System.io
    2. Public Class Form3
    3. Dim d_datenspeicher As New DataTable
    4. Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    5. d_datenspeicher.TableName = "d_fische"
    6. tabelle1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
    7. tabelle1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
    8. d_datenspeicher.Columns.Add(New DataColumn("Namedeutsch", GetType(System.String)))
    9. d_datenspeicher.Columns.Add(New DataColumn("Nameenglisch", GetType(System.String)))
    10. d_datenspeicher.Columns.Add(New DataColumn("Besonderheit", GetType(System.String)))
    11. tabelle1.DataSource = d_datenspeicher
    12. Dim _datafile As New FileInfo(Pfad & d_datenspeicher.TableName & ".xml")
    13. d_datenspeicher.ReadXml(_datafile.FullName)
    14. End Sub
    15. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    16. d_datenspeicher.Rows.Add(TextBox1.Text, TextBox2.Text, TextBox3.Text)
    17. End Sub
    18. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    19. Dim _datafile As New FileInfo(Pfad & d_datenspeicher.TableName & ".xml")
    20. d_datenspeicher.WriteXml(_datafile.FullName)
    21. End Sub




    --> wie kann man am besten eine binding list of (class) hier einbinden?

    VB.NET-Quellcode

    1. Public bKriegskarten As New System.ComponentModel.BindingList(Of Kriegskarte) From ' ????


    und was ist der Unterschied zwischen From und With bei der Deklaration?
    und was gibt man ein wenn man keinen eigenen Konstruktor eingebaut hat ?

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

    Visual_Prog schrieb:

    was ist der Unterschied zwischen From und With bei der Deklaration?
    From befüllt in diesem Fall eine Liste aus einer Sammlung von Elementen. Man füllt die Liste also schon mal mit ein paar Einträgen gleich bei der Initialisierung der Liste. With erstellt eine Objektinstanz mit bestimmten Initialwerten, also z.B.

    VB.NET-Quellcode

    1. Dim MyButton As New Button With {
    2. .Name = "BtnPrintScreen"
    3. .Width = 100
    4. .Height = 40
    5. .Visible = True
    6. .Enabled = False
    7. }

    Visual_Prog schrieb:

    was gibt man ein wenn man keinen eigenen Konstruktor eingebaut hat ?
    Was meinst Du? Bei einer eigenen Klasse? Dann schreibt man einfach nur Dim MyInstance As New MyClass
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.