Beim Start prüfen ob XML-Datenbankdatei existiert, wenn nicht, dann eine Meldung ob eine erstellt werden soll.

  • VB.NET

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

    Beim Start prüfen ob XML-Datenbankdatei existiert, wenn nicht, dann eine Meldung ob eine erstellt werden soll.

    Hallo zusammen,

    Ich habe in meinem Projekt diesen Code eingebaut, welches dafür sorgen soll, das die Datenbankdatei auf Existenz prüft, ansonsten soll eine Meldung erscheinen, welches dem Nutzer darauf hinweist, das die Datenbankdatei nicht gefunden wurde und ihn dann Fragt, ob eine neue Datenbankdatei erstellt werden soll.

    Wenn der Nutzer auf "Ja" klickt, dann soll eine Datenbankdatei erstellt werden, ansonsten wenn der Nutzer auf "Nein" klickt, sollte dennoch das Programm gestartet werden, aber der Nutzer kann keine Datensätze speichern.

    Der Code sieht so aus:

    VB.NET-Quellcode

    1. Private Sub FrmContactManager_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. Dim DatenankFehltErstellen As DialogResult
    3. DatenankFehltErstellen = MessageBox.Show("Die Datenbankdatei wurde nicht gefunden. Soll eine neue Datenbankdatei erstellt werden?", "Fehler beim Laden der Datenbank", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)
    4. If IO.File.Exists(_Datenquelle) Then
    5. DtsCmDaten.ReadXml(_Datenquelle)
    6. Else
    7. If (DatenankFehltErstellen) = DialogResult.Yes Then
    8. DtsCmDaten.WriteXml(_Datenquelle)
    9. End If
    10. End If
    11. End Sub



    Nur ich habe das Problem, das diese Meldung immer kommt, selbst dann wenn die Datenbankdatei bereits vorhanden ist.
    Meine Frage: Wie mache ich das richtig?
    Liebe Grüße
    Skayritares
    Nein, Du musst überhaupt mal ein If in die passende Zeile setzen, und zwar in der, in der die MessageBox angezeigt werden soll, bei Dir Z#3
    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.
    @Skayritares Das Problem jedes Anfängers: Zu glauben, dass, wenn der Code compiliert, er so funktioniert wie er soll.
    Leider praktisch nie.
    Bevor Du ein If setzt ( @VaporiZed ) solltest Du einen Haltepunkt setzen:
    Debuggen, Fehler finden und beseitigen
    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!
    @Skayritares
    Du hast nur einen Denkfehler drin ;)

    Du musst zuerst abfragen ob die Datei existiert.
    Wenn die Datei existiert, dann laden (Zeile 4).
    Wenn die Datei nicht existiert, dann nachfragen (ab Zeile 5) und wenn mit "yes" geantwortet wird die Datei schreiben (Zeile 7).

    VB.NET-Quellcode

    1. Private Sub FrmContactManager_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. If IO.File.Exists(_Datenquelle) Then
    3. DtsCmDaten.ReadXml(_Datenquelle)
    4. Else
    5. Dim DatenankFehltErstellen As DialogResult
    6. DatenankFehltErstellen = MessageBox.Show("Die Datenbankdatei wurde nicht gefunden. Soll eine neue Datenbankdatei erstellt werden?", "Fehler beim Laden der Datenbank", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)
    7. If DatenankFehltErstellen = DialogResult.Yes Then DtsCmDaten.WriteXml(_Datenquelle)
    8. End If
    9. End Sub

    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at