views:

227

answers:

5

I am looking for file based storage solutions that I can use with a .Net project. THey need to have a sql-like interface for storing and retrieving data. They need to have relatively little overhead and must not require any additional components installed by the end user. I am hopping for a .dll that I can reference and use. Cool points awarded if it is closely tied to an ORM.

My current favourite is SQLite, are there any better ones out there that I should know about?

I have a (health?) bias against access because I feel it is overcomplicated for what I need, I am open to being convinced otherwise though.

PS: "No, there is nothing better than SQLite" is a perfectly good answer.

+5  A: 

The only other option I have any experience with is Microsoft SQL Server Compact if you don't want to install anything on the user side. SQL Server Express works as well if you did want to install something. It really all has to do with what features you want to have in your embedded database.

The one advantage of SQL Compact is that when its on a local drive i.e. not on a network drive it natively supports multiple connections. If you want it to write to a database on a network drive though you'll have problems with it. From your brief description it sounds like SQL Compact is what you want. If you have more specific requirements the answer might be different.

Craig Suchanec
This seems to have many features I would like, and I can reuse the same code to talk to both SQL Server and SQL Server CE. Thanks!
vfilby
A: 

Try Microsoft SQL Server Compact

SQLDev
Why did you repeat an answer that was already given, and in a less-informative way?
Donal Fellows
+2  A: 

You can also check Firebird who has good dotnet driver

The embedded version is an amazing variation of the server. It is a fully featured Firebird server packed in just a few files.

dotnet driver here

Hugues Van Landeghem
+1  A: 

From your requirements I would definitely recommend sticking with SQLite. We use it extensively and have found it to be a huge advantage over other options. Single DLL, integrates really really well with .NET, and is very fast.

Sam
A: 

If you're into object-oriented DB's, there's db4o Embedded Database.

jonathanconway