Preserve data between application executions
Solution 1:
Simplest way is binding your textboxes to application settings:
- select texbox you want to preserve
- go to Properties > Data > (ApplicationSettings)
- add application settings binding to Text property
- on
FormClosed
event save application settings
Saving settings:
private void Form_FormClosed(object sender, FormClosedEventArgs e)
{
Settings.Default.Save();
}
Next time when user will start your application, settings will be loaded from user-specific file, and textboxes will be filled with same data as it was before user closed an application last time.
Also in application settings you can store local variables, but you will have to add settings for them manually, and manually read that setting on application start:
- open Properties folder under project > Settings.settings
- add settings you want to store (e.g. MyCounter)
- set MyCounter type, scope, and default value (e.g. int, User, 0)
- read setting to your local variable
var x = Settings.Default.MyCounter
- on form closed save setting
Settings.Default.MyCounter = x
just before callingSettings.Default.Save()
Solution 2:
There are a couple of options, but with most of them, you're going to be putting a file somewhere, whether it's a text file, resources/config or binary.
Using settings is one option: http://www.codeproject.com/Articles/17659/How-To-Use-the-Settings-Class-in-C
You can also take the serialization route: http://msdn.microsoft.com/en-us/library/vstudio/et91as27.aspx
Or you could possibly look into noSQL databases like MongoDB: http://www.mongodb.org/
Solution 3:
You have the following options
-
A local Microsoft Access database which can store small footprint.
-
Use a Dictionary, Serialize / Deserialize to filesystem.
-
The Windows registry.