22

如果当前安装了 LocalDB,如何签入 c# 代码?另外,如何检查系统中是否存在 SQLNCLI11?

4

4 回答 4

16

通过查找此注册表项检查是否安装了 LocalDB:

[HKLM\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions\11.0]

SQLNCLI11 - 检查文件版本和此文件的存在:C:\WINDOWS\system32\sqlncli.dll

于 2012-07-24T10:35:52.360 回答
3

这是一个检查 LOCALDB 的 VB.NET 示例

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
于 2016-02-23T21:50:56.287 回答
3

我正在使用这个问题的答案 来检查是否存在sqllocaldb.exe

像这样:

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;
}
于 2016-10-05T21:55:03.613 回答
1

我发现这个nuget包包含使用 SQLLocalDB 具有以下命令

SqlLocalDbApi.IsLocalDBInstalled()
于 2018-05-25T14:18:26.297 回答