Wenn du deinen Code zum Laden zeigst können wir vielleicht mehr dazu sagen.
Sicherlich hast du schon versucht DataTables und DataBinding zu verstehen, aber als kleine Hilfe hier ist Code um eine Tabelle mit drei Spalten (Id, Name, Adresse) anzulegen und im DGV zu zeigen. Du kannst neue Daten eintippen und Zeilen ändern oder löschen. Auf der Form sind drei Buttons (SaveButton, LoadButton und CreateButton). Die ersten zwei schreiben die Daten als Datei, und laden die Daten weider. Der dritte lädt ein paar fertige Sätze. Dazu kommt noch ein DataGridView (DataGridView1). Es kommt sogar eine Abfrage wenn man die Form schließt ohne die Daten zuerst abzuspeichern.
Public Class Form1
Private dt As New DataTable("MyTable")
Private WithEvents bs As BindingSource
Private updated As Boolean
Private file As String = "mytable.dat"
Private filePath As String = Environment.GetFolderPath( _
Environment.SpecialFolder.MyDocuments)
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)
Dim dc As DataColumn = dt.Columns.Add("Id", GetType(Integer))
dc.AutoIncrement = True
dc = dt.Columns.Add("Name", GetType(String))
dc = dt.Columns.Add("Address", GetType(String))
' Daten binden
bs = New BindingSource(dt, Nothing)
DataGridView1.DataSource = bs
End Sub
Private Sub SaveButton_Click(sender As Object, e As EventArgs) Handles _
SaveButton.Click
Dim path As String = IO.Path.Combine(filePath, file)
dt.WriteXml(path)
updated = False
MsgBox("Gesaved")
End Sub
Private Sub LoadButton_Click(sender As Object, e As EventArgs) Handles _
LoadButton.Click
Dim path As String = IO.Path.Combine(filePath, file)
If IO.File.Exists(path) Then
dt.ReadXml(path)
updated = False
Else
MsgBox("Gibt's doch nicht")
End If
End Sub
Private Sub CreateButton_Click(sender As Object, e As EventArgs) Handles _
CreateButton.Click
Dim dr As DataRow = dt.NewRow
dr("Name") = "Snythe"
dr("Address") = "Some Street"
dt.Rows.Add(dr)
dr = dt.NewRow
dr("Name") = "Snoddit"
dr("Address") = "Someother Street"
dt.Rows.Add(dr)
dr = dt.NewRow
dr("Name") = "Smunkle"
dr("Address") = "Different Street"
dt.Rows.Add(dr)
End Sub
Protected Overrides Sub OnClosing(e As _
System.ComponentModel.CancelEventArgs)
MyBase.OnClosing(e)
bs.EndEdit()
If updated Then
Dim dr As DialogResult = MsgBox("Änderungen speichern?", _
MsgBoxStyle.YesNo, "Data Manager")
If dr = Windows.Forms.DialogResult.Yes Then
Dim path As String = IO.Path.Combine(filePath, file)
dt.WriteXml(path)
End If
End If
End Sub
Private Sub bs_ListChanged(sender As Object, e As _
System.ComponentModel.ListChangedEventArgs) Handles bs.ListChanged
updated = True
End Sub
End Class ________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist |