Daten speichern

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Daten speichern

    Hallo liebe Mitglieder
    ich habe folgendes Problem: ich würde gerne meine Daten speichern können. Ich habe es geschafft die Funktion "Speichern unter" zu integrieren.
    Was mir fehlt ist das ich die Daten einfach speichern kann ohne das sich das dialogfenster öffnet. Also die sollen aktualisiert werden. Hoffe die Erklärung reicht. Das ist mien Code dazu.

    Dim ds1 As New DataSet("FIX_LENGTH_INTERFACE")
    Dim dt As New DataTable("B00")

    dt.Columns.Add("Name", GetType(String))
    dt.Columns.Add("Alter", GetType(String))
    dt.Columns.Add("Geburtsjahr", GetType(Integer))
    dt.Columns.Add("PLZ", GetType(String))
    dt.Columns.Add("von", GetType(Integer))
    dt.Columns.Add("bis", GetType(Integer))
    dt.Columns.Add("Bemerkung", GetType(String))

    ds1.Tables.Add(dt)

    Dim dr As DataRow
    dr = dt.NewRow

    dr("Name") &= txbName.Text
    dr("Alter") &= cbAlter.Text
    dr("Geburtsjahr") &= txbGeburtsjahr.Text
    dr("PLZ") &= txbPLZ.Text
    dr("von") &= txbVon.Text
    dr("bis") &= txtBis.Text
    dr("Bemerkung") &= txbBemerkung.Text

    dt.Rows.Add(dr)

    dgvXML.DataSource = dt

    SaveFileDialog1.Filter = "Xml File(.xml)|*.xml"
    Dim useClick As Boolean = SaveFileDialog1.ShowDialog()
    If (useClick = True) Then
    Dim stream = SaveFileDialog1.OpenFile()
    ds1.WriteXml(stream)
    End If
    Du musst die Variable stream (die kein Stream ist, also auch nicht so heißen sollte) ausserhalb deiner Funktion deklarieren.
    In etwa so:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private myPath As String
    3. Private Sub BtnSaveData_Click(sender As Object, e As EventArgs) Handles BtnSaveData.Click
    4. If myPath Is String.Empty Then
    5. ''Aufruf SaveFileDialog
    6. Return
    7. End If
    8. ds1.WriteXml(myPath)
    9. End Sub
    10. End Class


    deine Zeile:
    Dim stream = SaveFileDialog1.OpenFile()
    musst dann noch ändern in:
    myPath = SaveFileDialog1.OpenFile()

    Dksksm schrieb:

    Variable stream (die kein Stream ist, also auch nicht so heißen sollte)
    Lies da lieber nochmal nach.
    docs.microsoft.com/de-de/dotne…log.openfile?view=net-5.0
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Also das klappt immer noch nicht. Es wird nix gespeichert. Um es nochmal zu erklären. Also ich hab mit der "Speichern unter" funktion mehrere Dateien gespeichert. Nun mach ich sie auf und ändere etwas. Wenn ich dann auf "Speichern" klicke soll es sich dann einfach aktualisieren
    Wenn du den eigentlich wichtigen Code weder benennst noch zeigst, dann wissen wir auch nicht wo dir der Schuh drückt.
    Von nun mach ich sie auf stand nirgend was und meine Glaskugel ist auch kaputt.

    Ich arbeite so nicht mit Streams, über den Dialog hole ich mir den Pfad als String (OpenfileDialog.Filename), den kann man aber wieder in einen Stream konvertieren:
    docs.microsoft.com/de-de/dotne…set.writexml?view=net-5.0

    Damit hättest du den Pfad verfügbar solange das Programm läuft und könntest immer die XML überschreiben.
    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!