I initially posted my thoughts as a comment because I am not sure that there is enough information about the type, quantity and future needs of the data that you want to keep. Not to mention that I am not a database expert, so I can consult with salt and use everything that you ultimately find it most convenient to develop and maintain.
Speaking of this, I would never have dreamed of using any database to store simple client data. Complexity and overhead seem unreasonable, especially when the benefits of the SQL database are almost lost in the type of application. If your data set can be completely loaded into RAM or the performance impact of loading data on demand from a saved file is not significant, you may need to explore alternatives. The only scenarios in which I would consider storing in a client database is that it requires a faster data retrieval time, which cannot be achieved by smarter / more efficient code design, or if the application can benefit from indexing capabilities and searches that are something like MySQL.
Instead, I find that I naturally try to structure the data in the trees. For any application where speed was not a high priority, or I did not deal with particularly complex data types, I would choose XML Serialization . Not only is querying and modifying an XML file much faster than a database with a fairly small data set, the standard Microsoft DOM library simplifies working with XML data sources. Serialization of class instances is built into the .NET Framework and makes me wish that I had this functionality many years ago when I wrote code for storing and retrieving data all this time. Other advantages of XML are that it can virtually eliminate version problems with future versions of your application, even if functionality is added, and that data files can be viewed / edited manually if necessary. Portability is also good, allowing other programs to read and import your data easily, and if that happens, you do not run the risk of damaging a database with multiple reads / writes at once. Finally, for what it's worth, I found that serializing custom datasets in XML files is invaluable when debugging: I can save state and then open the XML file to see exactly what data is stored.
In applications that XML is not quite suitable for counting (usually because I try to trick and save the state of data-managing classes loaded into memory), I choose binary serialization . It is also a great alternative to XML if you are looking for faster access times and the complexity of the data / data structure is not amenable to XML hierarchical format. It is also built right into the .NET Framework and is probably even easier to configure than XML serialization (if possible). The two main drawbacks with this type of data storage is that seamless version control becomes almost impossible, and your data is stored in its own format, inaccessible to either the user or other applications. If version control is not a problem for your application, there is probably nothing to worry about. However, with a few data management applications that I wrote, I was bitten after returning and adding functions later, without taking precautions to read data files created in previous versions.
In either case, with binary or XML serialization, I like the flexibility provided to me as a developer with several discrete files for documents. I can associate certain file extensions with my shell application, the user interface becomes much more intuitive for things like backups, and users can easily share files created in my application with others that also have my application. How popular do you think Microsoft Word is?