DataSet to XML: Wird es bei Programmabsturz gespeichert?

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Nils_Kr.

    DataSet to XML: Wird es bei Programmabsturz gespeichert?

    Hallo,

    ich habe eine Frage bzgl. dem Arbeiten mit DataSets.

    In meinem Programm lade und speicher ich die Daten des DataSets in eine .XML-Datei.

    Nun stellt sich mir die Frage, was passiert, wenn das Programm abstürzen sollte? Werden meine Daten ordnugsgemäß in die .XML gespeichert?

    Derzeit speichere ich nur einmalig beim Schließen der From. Reicht das, oder sollte ich generelll nach jeder Änderungen im DataSet speichern?

    Code zum speichern beim Schließen des Programms:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub frmMain_Closing(sender As Object, e As CancelEventArgs) Handles MyBase.Closing
    2. MyDatabase.WriteXml(_Datapath)
    3. End Sub
    Es gibt keine automatische Speicherroutine. Wenn das Programm nicht ordnungsgemäß schließt und dein Speicherbefehl nicht triggert sind
    die bis dahin gemachten Änderungen futsch.

    Deswegen solltest du dafür sorgen, dass entweder regelmäßig gespeichert wird, oder das Programm nicht abstürtzt. :D
    Option strict = on

    If it's stupid and it works it ain't stupid.
    Nicht unbedingt

    rdmguy schrieb:

    nach jeder Änderung
    aber z.B. dann, wenn das DGV fen Fokus verliert, also in seinem .Leave-Event.
    Oder Du machst in einer Timer-Tick-Routine eine Zwischensicherung an einem anderen Speicherort.
    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!
    Das kommt auf deinen Anwendungsfall an. Automatisches speichern kann auch ein Nachteil sein. Wenn jemand mit dem Inhalt herumspielt und das Programm plötzlich speichert könnte das für Irritation sorgen.

    Für die "profimäßige" Speicherung kannst du dir ja einfach andere Programme angucken und überlegen, was dir gefällt. Manche Programme speichern wirklich nur, wenn man den Befehl dazu gibt, Office beispielsweise legt einen Zwischenspeicher an auf den man nach einem Absturz zugreifen kann. Ich würde übrigens nicht einfach beim schließen speichern, sondern danach Fragen, falls es eine Änderung gab.
    Das ließe sich auch leichter realisieren, als ein Zwischenspeicher.
    Option strict = on

    If it's stupid and it works it ain't stupid.