Which database would you recommend to use with C# (.NET) application?

I want to say Microsoft Sql 2005 Express, as it (almost) comes as the obvious choice when developing in .NET.

But it all depends on what previous db skills you have. If you already know MySql and as you already said, the data should be exported back to MySql. Why not use MySql all the way?


For quick and dirty I'd go with Sql Server Compact Edition. Its an in-process implementation of Sql Server, so it doesn't require you install any other applications.

Back in the day, you'd use an Access database for this kind of thing. But Access databases kinda blow.

It wouldn't take much to upload your finished data back to the production server. If you're looking for a solution that automates that process, you'll probably need to look at hosting an instance of MySql locally and use whatever replication services it provides.


Depends on how distributed your application is going to be. For standalone applications serving a few users (or single users on a single machine) SQLite is extremely fast and efficient. The main problem with SQLite is that it does not officially support parallel writes. This won’t create a problem for you in lightweight applications; however, serving millions of users online would be inefficient with SQLite.

Another important issue is FTS (Full Text Search). Is your application going to search for entire words instead of single/multiple characters? If so, consider Microsoft SQL server, because making FTS work on SQLite is a big headache and almost impossible on some Operating Systems (including Linux.) MS SQL server, however, can enable FTS even after database creation, with a few clicks.

In terms of responsiveness, I have ran many tests and SQLite has been usually faster than MS SQL server by 10–20 milliseconds, for simple queries. Again, performance tuning in MS SQL server is possible and the ecosystem is very powerful.

So I highly recommend working with MS SQL server.