I have a C# application that allows one user to enter information about customers and job sites. The information is very basic.
- Customer: Name, number, address, email, associated job site.
- Job Site: Name, location.
Here are my specs I need for this program.
- No limit on amount of data entered.
- Single user per application. No concurrent activity or multiple users.
- Allow user entries/data to be exported to an external file that can be easily shared between applications/users.
- Allows for user queries to display customers based on different combinations of customer information/job site information.
- The data will never be viewed or manipulated outside of the application.
- The program will be running almost always, minimized to the task bar.
- Startup time is not very important, however I would like the queries to be considerably fast.
This all seems to point me towards a database, but a very lightweight one. However I also need it to have no limitations as far as data storage. If you agree I should use a database, please let me know what would be best suited for my needs. If you don’t think I should use a database, please make some other suggestions on what you think would be best.
It sounds to me like a database is 100% what you need. It offers both the data storage, data retrieval (including queries) and the ability to export data to a standard format (either direct from the database, or through your application.)
For a light database, I suggest SQLite (pronounced ‘SQL Lite’ 😉 ). You can google for tutorials on how to set it up, and then how to interface with it via your C# code. I also found a reference to this C# wrapper for SQLite, which may be able to do much of the work for you!