2012-12-24 4 views
9

Ich habe eine Anwendung mit einigen Textfeldern. Mein Benutzer füllt die Textfelder und führt einige Methoden aus, wenn sie geschlossen werden, gehen die Anwendungsdaten verloren (normalerweise).Daten zwischen Anwendungsausführungen beibehalten

Ich möchte den Wert einiger Textfelder und einiger lokaler Variablen beibehalten. Es lohnt sich nicht, database zu verwenden, und einfache .txt Dateien sind nicht sauber genug, gibt es eine andere einfache und kurze Möglichkeit, kleine Datenmengen zwischen Anwendungsläufen zu speichern?

Ich bin mir nicht sicher, aber habe ein paar Wisps über Ressourcendateien gehört, sind sie gut für diesen Fall?

+0

http://stackoverflow.com/Fragen/1435037/Wie-sollte-ich-speichern-pro-Benutzer-Daten-in-Winforms – Habib

Antwort

16

einfachste Weg ist verbindlich Ihre Textfelder application settings:

  • wählen texbox Sie Eigenschaften> Daten
  • gehen erhalten möchten> (Application)
  • hinzufügen Anwendungseinstellungen Bindungseigenschaft auf Text
  • auf FormClosed Ereignis speichern Anwendung Einstellungen

Speichern der Einstellungen:

private void Form_FormClosed(object sender, FormClosedEventArgs e) 
{ 
    Settings.Default.Save(); 
} 

Das nächste Mal, wenn der Benutzer die Anwendung starten, werden die Einstellungen von benutzerspezifischen Datei geladen werden, und Textfelder mit den gleichen Daten gefüllt werden, wie es war, bevor Benutzer eine Anwendung letzte Mal geschlossen.

Auch in Anwendungseinstellungen können Sie lokale Variablen speichern, aber Sie werden die Einstellungen für sie hinzufügen müssen manuell und manuell diese Einstellung beim Start der Anwendung lesen:

  • öffnen Sie die Eigenschaften Ordner unter Projekt> Settings.settings
  • Einstellungen hinzufügen, die Sie speichern möchten (zB MyCounter)
  • Satz MyCounter Art, Umfang und den Standardwert (zB int, Benutzer, 0)
  • auf Ihre lokale Variable lesen Einstellung var x = Settings.Default.MyCounter
  • auf Formular geschlossen Settings.Default.MyCounter = x nur Spareinstellungen vor Settings.Default.Save()
+3

@ mahditahs ildari ja, das ist eine Winform-Sache 'Data' ist eine Kategorie von Eigenschaften. Wenn Sie nach dem Namen der Immobilie suchen, dann brauchen Sie '(ApplicationSettings)' Eigenschaft –

+1

Ich habe endlich Ihren Punkt :) großartig, das ist, was ich gesucht habe, hatte ich es vorher gesehen, aber verlor das Bild im Hinterhof meines Gehirns. –

0

Vorausgesetzt, Sie sind auf Windows (wie die Tags implizieren), haben Sie die Registrierung in Betracht gezogen?

+0

Ja, ich bin auf Windows und ja ich habe über die Registrierung gedacht, aber aus irgendwelchen Gründen möchte ich die Daten in der Nähe meiner Anwendung befinden (wie andere Dateien der Anwendung) –

1

Aufruf Sie

folgende verwenden können

1- Eine lokale MS-ACCESS basiert db, die kleine Stellfläche speichern kann.

2- Verwenden Wörterbuch Serilize/Deserilize es auf der Festplatte (Verwendet Filesystem)

3- Bewahren Sie es in Windows-Registry

+0

Sorry, aber ich habe angegeben, dass ich weder Datenbank noch FileSystem verwenden möchte, und die Registrierung wird auch als Antwort auf Lexu abgelehnt. –

+0

@mahditahsildari: Nun, wenn Sie Datenbank, Registrierung ** und ** Dateisystem ausschließen - gibt es nicht viele Optionen übrig .... –

+1

Entschuldigung aber, wenn Sie Benutzereinstellungen speichern möchten, die später wieder geladen werden können, Sie muss es irgendwo speichern. Welche Art von Anwendung ist das? – TalentTuner

1

ein paar Optionen gibt es aber bei den meisten von ihnen, Sie‘ Ich werde irgendwo eine Datei ablegen, egal ob es sich um eine Textdatei, Resources/Config oder Binärdatei handelt.

Einstellungen zu verwenden ist eine Option: http://www.codeproject.com/Articles/17659/How-To-Use-the-Settings-Class-in-C

Sie können auch die Serialisierung Route nehmen: http://msdn.microsoft.com/en-us/library/vstudio/et91as27.aspx

Oder Sie möglicherweise in NoSQL-Datenbanken wie MongoDB aussehen könnte: http://www.mongodb.org/

Verwandte Themen