XML / DataSet über zwei Forms nutzen

  • VB.NET

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

    XML / DataSet über zwei Forms nutzen

    Guten Tag,

    ich habe ein Projekt mit zwei Formen, die frmMain
    benötigt Daten ausschließlich zum Anzeigen und weiterverarbeiten. In der
    frmAdministration können Datensätze verarbeitet (bearbeitet, gelöscht,
    angelegt) werden. Die Daten werden mit WriteXML und ReadXML in einer xml
    Datei gespeichert.

    Der Ablauf ist folgender:
    - frmMain startet bei Programmaufruf
    - im Load Event wird das Dataset "Connections" mittels ReadXML aus der XML Datei befüllt.
    - Dem Benutzer werden hier Datensätze angezeigt und er kann Datenbankunabhängige Aktionen mit den Daten ausführen.
    - Öffnet man nun das frmAdministrator wird auch hier im Load Event ein ReadXML aufgerufen.
    - Der Administrator verändert Daten und speichert diese (WriteXml)

    Nun
    entsteht folgendes Problem: Geht man zurück in die frmMain werden hier
    nach wie vor die alten Daten, z.B. ohne neuen Datensatz, angezeigt.

    Wie umgehe ich dieses Problem am elegantesten? Können zwei Forms das gleiche Dataset bearbeiten und dynamisch interagieren?
    Oder muss ich es irgendwie hinbekommen, im Closing Event der frmAdministrator das ReadXML für frmMain neu auszuführen?

    Vielen Dank,
    VBDev
    var coffee = new coffee();
    if(coffee.empty)
    {
    coffee.refill();
    } else {
    coffee.drink();
    }
    Das funktioniert hervorragend - vielen Dank!

    Eine kleine zweite Frage dazu: Wie bekomme ich ein ContextMenuStrip an das DataSet gebunden?

    Ich möchte, dass für jeden Datensatz ein Item im Context Menu eingefügt wird:

    VB.NET-Quellcode

    1. For Each record In Dataset.Datatable
    2. mnuContextMain.Items.Add(record.name)
    3. Next


    Das ist leider nicht dynamisch genug.
    var coffee = new coffee();
    if(coffee.empty)
    {
    coffee.refill();
    } else {
    coffee.drink();
    }

    VBDev schrieb:

    Wie bekomme ich ein ContextMenuStrip an das DataSet gebunden?
    gar nicht.
    Ein ContextMenuStrip kannst Du an ein Control binden, z.B. ein DataGridView.
    Das ContextMenuStrip hat eine Methode .Open(), da kannst Du die Einträge manipulieren.
    Zum Benutzen eines DataSets in mehreren Formen:
    Wenn die zweite Form modal aufgerufen wird, übergib das DataSet als Property an die zweite Form und feddich.
    Update die erste Form nach Schließen des Dialogs.
    Wird die zweite Form nicht modal aufgerufen, solte die zweite Form bei Änderungen ein Event an die erste Form senden.
    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!