2 Stimmen

Wie können dynamisch befüllte Datensätze im Programm verbleiben?

Ich habe eine Winform-Anwendung, die einige referenzierte Webdienste verwendet, um Daten zu erhalten. Die zurückgegebenen Daten sind ein Array von Objekten, die ich in einer Schleife durchlaufen und zu einem dataSet hinzufügen kann.

Wenn ich den Dienst anrufe, kann es oft 2 oder 3 Minuten dauern, bis alle Daten vorliegen.

Wenn der Benutzer das Programm verlässt und später zurückkommt, möchte ich nicht, dass er alle Daten erneut herunterladen muss.

Wenn ich die Anwendung im Debug-Modus ausführe, bleiben die heruntergeladenen Informationen nicht erhalten, was mich beunruhigt.

Ich befinde mich noch im "Entwicklungsmodus", habe also noch kein Installationsprogramm erstellt, um zu testen, ob die Informationen in der Anwendung bleiben.

Ich bin neugierig auf ein paar Dinge:

  1. Bleiben die im Dataset gespeicherten Daten erhalten, wenn der Benutzer die Seite verlässt?
  2. Wenn nicht, was würden Sie empfehlen, wie man dies erreichen kann?
  3. Ich habe XML für die Speicherung in Betracht gezogen; ist das die beste Option, wenn Sie 9-10 MB Daten haben?

    Edit: Endgültiges Ergebnis: OK - hier ist das Endergebnis (danke an alle für die schnelle Antwort)

Wenn die Anwendung beendet wird, rufe ich eine Funktion zum Speichern der Daten auf. Hier ist ein Ausschnitt:

   using System.IO;
   using System.Runtime.Serialization;
   using System.Runtime.Serialization.Formatters.Binary;            
   FileStream fs;
   IFormatter formatter = new BinaryFormatter();
    //activities
    if (actList.Length > 0)
    {
        fs = new FileStream("activities.bin", FileMode.Create, FileAccess.Write, FileShare.None);
        formatter.Serialize(fs, actList);
        fs.Close();
    }
    //users
    if (userList.Length > 0)
    {
        fs = new FileStream("users.bin", FileMode.Create, FileAccess.Write, FileShare.None);
        formatter.Serialize(fs, userList);
        fs.Close();
    }

Die Parameter userList und actList sind Listenobjekte, die aus dem Aufruf der Webdienste stammen.

eine andere Sache, die ich implementiert habe (etwas abseits des Themas), ist die Erstellung einer Anwendungseinstellung, um zu speichern, wann der Benutzer zuletzt einen Download vom Webdienst durchgeführt hat. Es wird gespeichert als

Properties.Settings.Default.last_downloaded

Wenn der Nutzer auf die Schaltfläche "Herunterladen" klickt, wird er nach dem Datum des letzten Downloads gefragt und hat die Möglichkeit, "Nein" zu sagen.

Nochmals vielen Dank für Ihre Hilfe!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X