<p>I was (and still am) looking for an embedded database to be used in a .net (c#) application. The caveat: The Application (or at least the database) is stored on a Network drive, but only used by 1 user at a time.</p>

<p>Now, my first idea was <a href="http://www.microsoft.com/sql/editions/compact/default.mspx" rel="nofollow noreferrer">SQL Server Compact edition</a>. That is really nicely integreated, but it can not run off a network.</p>

<p><a href="http://web.archive.org/web/20100615004036/http://firebirdsql.org/dotnetfirebird/" rel="nofollow noreferrer">Firebird</a> seems to have the same issue, but the .net Integration seems to be not really first-class and is largely undocumented.</p>

<p><a href="http://web.archive.org/web/20150510070451/http://www.codegear.com/products/blackfish" rel="nofollow noreferrer">Blackfish SQL</a> looks interesting, but there is no trial of the .net Version. Pricing is also OK.</p>

<p>Any other suggestions of something that works well with .net <strong>and</strong> runs off a network without the need of actually installing a server software?</p>

[{'answer_id': 707, 'author': 'sven', 'author_id': 46, 'author_profile': 'https://Stackoverflow.com/users/46', 'pm_score': 5, 'selected': False, 'text': '<p><a href="http://www.sqlite.org/" rel="noreferrer">SQLite</a> came to my mind while reading your question, and I\'m quite sure that it\'s possible to access it from a network drive <em>if</em> you keep yourself to the constraint of 1 user at a time.</p>\n\n<p><a href="http://web.archive.org/web/20100208133236/www.mikeduncan.com/sqlite-on-dotnet-in-3-mins/" rel="noreferrer">SQLite on .NET - Get up and running in 3 minutes</a></p>\n'}, {'answer_id': 710, 'author': 'Yaakov Ellis', 'author_id': 51, 'author_profile': 'https://Stackoverflow.com/users/51', 'pm_score': 3, 'selected': False, 'text': '<p>Check out <a href="http://www.gibraltarsoftware.com/VistaDB" rel="nofollow noreferrer">VistaDB</a>. They have a very good product, the server version (3.4) is in Beta and is very close to release.</p>\n'}, {'answer_id': 730, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 3, 'selected': False, 'text': '<p>Why not use <a href="http://www.microsoft.com/sql/editions/express/default.mspx" rel="nofollow noreferrer">SQL Server 2005 Express edition</a>? </p>\n\n<p>It really depends on what you mean by "embedded" - but you can redistribute SQLServer2005E with your applications and the user never has to know it\'s there.</p>\n\n<p><a href="http://msdn.microsoft.com/en-us/library/ms165660.aspx" rel="nofollow noreferrer">Embedding SQL Server Express in Applications</a></p>\n\n<p><a href="http://msdn.microsoft.com/en-us/library/bb264562.aspx" rel="nofollow noreferrer">Embedding SQL Server Express into Custom Applications</a></p>\n'}, {'answer_id': 737, 'author': 'Justin Walgran', 'author_id': 173, 'author_profile': 'https://Stackoverflow.com/users/173', 'pm_score': 3, 'selected': False, 'text': '<p>It sounds like ADO/Access is perfect for your needs. It\'s baked into the MS stack, well seasoned, and multi-user.</p>\n\n<p>You can programatically create a DB like so:</p>\n\n<pre><code>Dim catalog as New ADOX.Catalog\nCatalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\\\server\\path\\to\\db.mdb")\n</code></pre>\n\n<p>You can then use standard ADO.NET methods to interact with the database.</p>\n'}, {'answer_id': 6751, 'author': 'Fabio Gomes', 'author_id': 727, 'author_profile': 'https://Stackoverflow.com/users/727', 'pm_score': 3, 'selected': False, 'text': '<p>You can use the firebird embeded, it\'s just a dll that you will need to ship with you app.</p>\n\n<p>About things being undocumented, that\'s not really true, the firebird .NET driver implements the ADO Interfaces, so if you know ADO you can work with Firebird, basically instead of SQLConnection you will use FBConnection and so on, but my advice is to write a data access layer and use just interfaces on your code, something like this:</p>\n\n<pre><code>using FirebirdSql.Data.FirebirdClient;\n\npublic static IDbConnection MyConnection()\n{\n    FbConnection cn = new FbConnection("...");\n    return cn;\n}\n</code></pre>\n\n<p>This example is very simple, but you will not need much more than that.</p>\n\n<p>We use firebird for our all application without any problems, you should at least try it out.</p>\n'}, {'answer_id': 7013, 'author': 'Stephen Cox', 'author_id': 534, 'author_profile': 'https://Stackoverflow.com/users/534', 'pm_score': 2, 'selected': False, 'text': '<p>There\'s also <a href="http://www.paradigmasoft.com/en/products/developer/adk/VNET" rel="nofollow noreferrer">Valentina</a>. I cam e across this product when I was working on some Real Basic project. The RB version is very good.</p>\n'}, {'answer_id': 223132, 'author': 'Peter Funk', 'author_id': 30077, 'author_profile': 'https://Stackoverflow.com/users/30077', 'pm_score': 3, 'selected': False, 'text': '<p>I\'d recommend Advantage Database Server (www.advantagedatabase.com).  It\'s a mature embedded DB with great support and accessible from many development languages in addition to .NET.  The "local" version is free, runs within your application in the form of a DLL, requires no installation on the server/network share, and supports all major DB features.  You can store the DB and/or application files all on the network; it doesn\'t care where the data is.</p>\n\n<p>Disclaimer:  I am an engineer in the ADS R&amp;D group.  I promise, it rocks :)</p>\n'}, {'answer_id': 779214, 'author': 'Jason Short', 'author_id': 19974, 'author_profile': 'https://Stackoverflow.com/users/19974', 'pm_score': 3, 'selected': False, 'text': '<p>A little late to the post here.. And <a href="http://www.gibraltarsoftware.com/VistaDB" rel="nofollow noreferrer">VistaDB</a> is already mentioned, but I wanted to point out that VistaDB is 100% managed (since your post was tagged .net).  It can run from a shared network drive, and is 1MB xcopy deployed.</p>\n\n<p>Since you mention SQL CE, we also support T-SQL Syntax and datatypes (in fact more than SQL CE) and have updateable views, TSQL Procs and other things missing in SQL CE.</p>\n'}, {'answer_id': 779273, 'author': 'Murph', 'author_id': 1070, 'author_profile': 'https://Stackoverflow.com/users/1070', 'pm_score': 2, 'selected': False, 'text': '<p>I\'m puzzled. </p>\n\n<p>You\'re asking for an embeded database - where the database itself is stored on the server. that translates to storing the data file on a network share. You then say that SQL Compact Edition won\'t work... except that if one looks at this document:</p>\n\n<p>Word Document:<br>\n<a href="http://download.microsoft.com/download/A/4/7/A47B7B0E-976D-4F49-B15D-F02ADE638EBE/Compact_Express_Comparison.doc" rel="nofollow noreferrer">Choosing Between SQL Server 2005 Compact Edition and SQL Server 2005 Express Edition </a></p>\n\n<p>On page 8 you have a nice big green tick next to "Data file storage on a network share".</p>\n\n<p>So it seems to me that your first thought was the right one.</p>\n'}, {'answer_id': 2844264, 'author': 'Vagaus', 'author_id': 157321, 'author_profile': 'https://Stackoverflow.com/users/157321', 'pm_score': 2, 'selected': False, 'text': '<p>Have you considered an OODB? From the various open sources alternatives I recommend <a href="http://www.db4o.com" rel="nofollow noreferrer">db4o</a> (sorry for the self promotion :)) which can run either embedded or in client/server mode.</p>\n\n<p>Best</p>\n\n<p>Adriano</p>\n'}, {'answer_id': 62459099, 'author': 'Michael Stum', 'author_id': 91, 'author_profile': 'https://Stackoverflow.com/users/91', 'pm_score': 1, 'selected': True, 'text': '<p>This question is now ancient, and a lot has changed. For my specific purposes, <a href="https://www.litedb.org/" rel="nofollow noreferrer">LiteDB</a> is the option of choice. It\'s open source and has a <a href="https://github.com/mbdavid/LiteDB" rel="nofollow noreferrer">GitHub Repository</a>.</p>\n\n<p>Apart from that, <a href="https://sqlite.org/index.html" rel="nofollow noreferrer">SQLite</a> is basically the industry standard for embedded databases. There are attempts to port the code to .NET, but the prime use case involves a native library (e.g., the <a href="https://www.nuget.org/packages/sqlite/" rel="nofollow noreferrer">sqlite Nuget package</a>) and/or a .NET P/Invoke wrapper like <a href="https://www.nuget.org/packages/Microsoft.Data.Sqlite" rel="nofollow noreferrer">Microsoft.Data.SQLite</a>.</p>\n'}]
['https://Stackoverflow.com/questions/705', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/91/']