How to check in c# code if LocalDB currently installed? also, how to check if SQLNCLI11 presents in system?
Asked
Active
Viewed 1.2k times
4 Answers
16
Check if LocalDB is installed, by looking for this registry key:
[HKLM\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions\11.0]
SQLNCLI11 - check the file version and presence of this file: C:\WINDOWS\system32\sqlncli.dll
-
I have a little confusion. Need to know a little something to clear. In MS Visual Studio 2010, I can create database and work with it. (probably MS SQL Server express, which is by default integrated with VS 2010). Is it what we're refering as LocalDB? – Zeeshan Nov 28 '13 at 06:27
-
No, not exactly the same, but similar products – ErikEJ Nov 28 '13 at 10:25
-
This won't work if the user uninstalls localdb. The key is not removed. – P a u l Jun 03 '14 at 17:53
-
You might try HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11E.LOCALDB\Setup – P a u l Jun 03 '14 at 18:09
3
Here is a VB.NET example checking for LOCALDB
Public Shared Function CheckLocalDBExists() As Boolean
Dim s As String = ""
Dim reg As RegistryKey
Dim rtn As Boolean = False
reg = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions\12.0", True)
Try
s = reg.GetValue("ParentInstance", "").ToString
reg.Close()
Catch ex As Exception
s = Nothing
End Try
'MessageBox.Show(s)
If s = "MSSQL12E.LOCALDB" Then
rtn = True
End If
Return rtn
End Function

Scott
- 143
- 1
- 9
-
Note: This test is for localdb 2014. For 2012 you need to check for installed version 11.0 and MSSQL11E.LOCALDB. (sorry for any confusion) – Scott Jul 18 '16 at 14:36
3
I'm using the answer to this question
to check for the existence of sqllocaldb.exe
Like so:
public static bool IsLocalDBInstalled()
{
return ExistsOnPath("SqlLocalDB.exe"); ;
}
public static bool ExistsOnPath(string fileName)
{
return GetFullPath(fileName) != null;
}
public static string GetFullPath(string fileName)
{
if (File.Exists(fileName))
return Path.GetFullPath(fileName);
var values = Environment.GetEnvironmentVariable("PATH");
foreach (var path in values.Split(';'))
{
var fullPath = Path.Combine(path, fileName);
if (File.Exists(fullPath))
return fullPath;
}
return null;
}

Community
- 1
- 1

JochemKempe
- 2,566
- 2
- 16
- 12
2
I found this nuget package that wraps up working with SQLLocalDB Has the following command
SqlLocalDbApi.IsLocalDBInstalled()

Lord Darth Vader
- 1,895
- 1
- 17
- 26