【问题标题】:I can't get a Sql Server localdb connection to work on a computer that does not have SqlServer Express installed我无法让 Sql Server localdb 连接在未安装 SqlServer Express 的计算机上工作
【发布时间】:2015-01-07 18:33:33
【问题描述】:

我有一个使用 Visual Studio 2012 编写的 C# 控制台应用程序。在该应用程序中,我使用 Sql Server localdb 连接到数据库来存储信息。这在几台计算机上都可以正常工作,所有这些计算机都安装了 Visual Studio。

我想部署一个程序,它只需要安装 Sql Server Express LocalDB,而不是更大的 Sql Server Express。但是,我的应用程序没有在目标计算机上运行。我已经在目标计算机上安装了 Sql Server Express LocalDB 2014。我可以使用命令行,使用 sqllocaldb 运行命令来验证它是否已安装并正在运行。

C:\Users\someuser\Desktop\Debug>sqllocaldb v
Microsoft SQL Server 2014 (12.0.2000.8)`

但是,当我在同一台目标计算机上运行我的应用程序时,我收到以下错误。

C:\Users\someuser\Desktop\Debug>Testing_Console
11:21:07,912 [1] INFO TestingConsole.Program - 当前目录是 C:\Users\someuser\Desktop\Debug
附加信息:(空)


未处理的异常:System.Data.SqlClient.SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:50 - 发生本地数据库运行时错误。无法创建自动实例。有关错误详细信息,请参阅 Windows 应用程序事件日志。

以下是我的 app.config 文件的开头,我在其中定义连接字符串。我尝试将直接文件路径放入 LM 文件,但这并没有解决问题。然而,这是意料之中的,因为该程序可以在安装了 Visual Studio 的计算机上的任何目录中运行。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <connectionStrings>
    <add name="KomoLM_Console.Properties.Settings.LMConnectionString"
      providerName="System.Data.SqlClient"
      connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\LM.mdf;Integrated Security=True;MultipleActiveResultSets=True"
 />
  </connectionStrings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>

我不知道问题是否与仅安装了 SQL Server Express LocalDB 2014 有关。谁能告诉我我的问题可能是什么?

【问题讨论】:

标签: c# sql-server visual-studio-2012 localdb sql-server-2014-express


【解决方案1】:

问题与安装 Sql Server Express LocalDB 2014 而不是 2012 有关。在该版本中,MS 更改了连接字符串要求。连接字符串不是Data Source=(LocalDB)\V11.0,而是Data Source=(LocalDB)\MSSQLLocalDB。更改我的连接字符串后,程序在仅安装了 LocalDB 2014 的计算机上正常运行。这是一篇关于它的文章的链接:https://connect.microsoft.com/SQLServer/feedback/details/845278/sql-server-2014-express-localdb-does-not-create-automatic-instance-v12-0

还有

http://msdn.microsoft.com/en-us/library/hh510202(v=sql.120).aspx

【讨论】:

  • 对我来说,实例名称 (LocalDB)\MSSQLLocalDB 不起作用。无论如何,感谢您的尝试:D
  • 我安装了 Microsoft SQL Server 2014 并且“(LocalDB)\MSSQLLocalDB”路径解决了这个问题。
  • MSSQLLocalDB 只是一个实例的名称。您可以根据需要创建任意数量的实例,并按您的意愿命名。打开cmd 并输入sqllocaldb i。这列出了可用的实例。使用:sqllocaldb c YouNewInstance 创建一个新的。在早期版本中,LocalDB 自动创建了一个名为 v11.0 的实例,在当前版本中,此默认实例名为 MSSQLLocalDB
【解决方案2】:

使用“Data Source=(LocalDB)\MSSQLLocalDB”对我也不起作用。我必须使用“Data Source=(LocalDB)\V12.0”访问数据库,并且为了访问工作,我需要先运行这个命令“sqllocaldb create”v12.0“。有关此链接的更多详细信息https://dyball.wordpress.com/2014/04/28/sql-2014-localdb-error-cannot-connect-to-locaidbv12-o/

【讨论】:

  • 谢谢!这同样适用于我,但我创建了名为 MSSQLLocalDB 的实例,运行“sqllocaldb create MSSQLLocalDB”。我想如果没有在 SQL Server 的同一台机器上安装 VS,它不会默认创建它。在我的情况下,这是一个完整的 SQL 服务器安装(不是 express)
【解决方案3】:

您需要确保已安装 .NET Framework 4.0 以及同样重要的 .NET Framework 4.0.2 更新 (KB #2544514)。

系统更新后,您可以从以下位置下载 SqlLocalDb 安装程序:

http://www.microsoft.com/en-us/download/details.aspx?id=29062

【讨论】:

    【解决方案4】:

    具有(LocalDB)\v11.0 连接字符串的构建将与此链接Download SqlLocalDB 上给出的localDB ENU\x64\SqlLocalDB.MSI 一起使用

    我在没有安装Visual Studio 的目标系统上试过这个。此构建将与仅安装了SqlLocalDB.msi 的数据库连接。无需在目标系统上安装SqlExpress

    【讨论】:

      【解决方案5】:

      问题是当您同时安装 Visual Studio 2013 和 Visual Studio 2017 时,会安装两个版本的本地数据库。

      Visual Studio 2013 - (localdb)\v11.0 Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64) 2012 年 10 月 19 日 13:38:57 版权所有 (c) 微软公司 Windows NT 6.2(内部版本 9200:)上的 Express 版(64 位)

      Visual Studio 2017 - (localdb)\MSSQLLOCALDB Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64) 2016 年 10 月 28 日 18:17:30 版权所有 (c) 微软公司 Windows 10 Pro 6.3(内部版本 17134:)上的 Express 版(64 位)

      在安装 Visual Studio 2017 之前,我能够连接到 (localdb)\v11.0,但在安装 Visual Studio 2017 之后,我无法连接到以前版本的 SQL Express (localdb)\v11.0,但我可以使用 C# 连接到 (localdb)\MSSQLLOCALDB。 我可以毫无问题地从 SQL Server Management Studio 连接到它们。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-25
        • 1970-01-01
        • 2022-01-22
        • 1970-01-01
        相关资源
        最近更新 更多