55
votes

when I tried to create a new SQL Server Compact file from Visual Studio -> Add New Item, I don't see the 'Local Database' option any more which was actually the way to add SQL Server Compact Database. Now, if it is really discontinued from Microsoft, then, what is the recommended Embedded Database technology from Microsoft for Desktop Applications ? I tried SQLite but deployment is headache for SQLite because, the user may not have correct version of Visual C++ distributable installed in his/her machine.

7
Visual Studio intellisense uses SQL Server Compact Edition. Has Visual Studio 2014 switched to SQL Server Local? - Bruno Martinez
See @ErikEJ 's answer below. Presnetation on the topic with meat starting at slide 15-16: slideshare.net/tothc/hosting-simple-websites-on-azure - Csaba Toth
For long term I'd still brace myself and seek for something else, see @Aaron 's answer - Csaba Toth
Microsoft has deprecated MS SQL Server Compact from Visual Studio 2013. My own explanation for this is, that CE is a serverless DB system, that only runs on Windows machines today. Microsofts long term goal seems to be, to offer a real cross platform environment with newer Visual Studio versions. So a serverless DB, that doesn't run on Linux, Android and iOS makes no more sense. - Michael

7 Answers

19
votes

Yes, it is missing from VS 2013, but you can do almost everything you need to do with SQLCE in VS 2013 by using my SQL Server Compact Toolbox addin. What are you missing?

12
votes

As others pointed out, SQL Server Compact has been deprecated. But instead you can use SQLite which doesn't require any installation on the client machine.

SQLite depends on the Visual C++ runtime, but you don't need to install it on the client machine. The system.data.sqlite download page contains several "static" packages that already contain the runtime.

All the "static" packages contain either native or mixed-mode assembly binaries linked statically to the appropriate version of the Visual C++ runtime. Typically, these packages are used in cases where customer machines may not have the necessary version of the Visual C++ runtime installed and it cannot be installed due to limited privileges.

For example, on my machine I am running Windows 8.1 x64 so I went under Precompiled Statically-Linked Binaries for 64-bit Windows (.NET Framework 4.0) and downloaded sqlite-netFx40-static-binary-x64-2010-1.0.90.0.zip.

This binary package contains all the binaries for the x64 version of the System.Data.SQLite 1.0.90.0 (3.8.2) package. The Visual C++ 2010 SP1 runtime for x64 is statically linked. The .NET Framework 4.0 is required.

I then unzipped the package and ran test.exe to make sure everything works. Zero installation required.

8
votes
3
votes

SQLite is also available as a single C file (amalgamation), which you can directly compile into your application, if you use native C/C++. It then works in any situation where your app can open a file. No additional DLLs nor installation required.

1
votes

For other newbies out there who are having a problem and land on this site, what I did was to create the SQL Server database file (which is created in LocalDB) and then in the project properties, publish tab, and prerequisites button, there is the opportunity to add the download and installation of LocalDB to the published package - and it works.

1
votes

Unfortunately there is no built-in support of SQL Compact in Visual Studio 2013.

But you can install add-in SQL Server Compact/SQLite Toolbox

I also use this tool for SQL Compact in VS 2013 and it is very easy and clear