sql-server 我无法在未安装SqlServer Express的计算机上建立SQL Server localdb连接

az31mfrm  于 2022-10-31  发布在  SQL Server
关注(0)|答案(6)|浏览(510)

我有一个使用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:\用户\某用户\桌面\调试〉测试控制台
11:21:07,912 [1]信息测试控制台。程序-当前目录为C:\Users\someuser\Desktop\Debug
额外信息:(null)
未行程的例外状况: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有关。有人能告诉我问题可能是什么吗?

2w2cym1i

2w2cym1i1#

此问题与安装的是SQL Server Express LocalDB 2014而不是2012有关。在该版本中,MS更改了连接字符串要求。连接字符串为Data Source=(LocalDB)\MSSQLLocalDB,而不是Data Source=(LocalDB)\V11.0。更改连接字符串后,程序在仅安装了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

rryofs0p

rryofs0p2#

使用“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/

gxwragnw

gxwragnw3#

您将需要确保您已经安装了.NET Framework 4.0,同样重要的是,还安装了.NET Framework 4.0.2更新(KB #2544514)。
一旦您的系统是最新的,您就可以从下列位置下载SqlLocalDb安装程式:
http://www.microsoft.com/en-us/download/details.aspx?id=29062

vmpqdwk3

vmpqdwk34#

具有连接字符串(LocalDB)\v11.0的构建将使用此链接Download SqlLocalDB上给定的localDB ENU\x64\SqlLocalDB.MSI
我在未安装Visual Studio的目标系统上尝试了此操作。此版本将与仅安装了SqlLocalDB.msi的数据库连接。无需在目标系统上安装SqlExpress

kmynzznz

kmynzznz5#

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

Visual Studio 2013 -(本地数据库)\v11.0Microsoft SQL Server 2012(SP1)- 11.0.3000.0(X64)2012年10月19日13:38:57版权所有(c)基于Windows NT 6.2(内部版本号9200:)

Microsoft SQL Server 2016(SP1)(KB 3182545)- 13.0.4001.0(X64)2016年10月28日18:17:30版权所有(c)在Windows 10专业版6.3(内部版本号17134:2016)上运行的Microsoft公司速成版(64位))
在安装Visual Studio 2017之前,我可以连接到**(localdb)\v11.0**,但在安装Visual Studio 2017之后,我无法连接到以前版本的SQL Express**(localdb)\v11.0**,但我可以使用C#连接到**(localdb)\MSSQLLOCALDB**。我可以从SQL Server Management Studio连接到这两个版本,没有任何问题。

9jyewag0

9jyewag06#

对我来说,删除并重新创建MSSQLLocalDB解决了这个问题:
1.寻找最新的SqlLocalDB版本:
CD "C:\Program Files\Microsoft SQL Server\150\Tools\Binn\"
1.移动到具有最高版本号的目录中,例如
CD "C:\Program Files\Microsoft SQL Server\150\Tools\Binn\"
1.删除LocalDB的默认示例:
SqlLocalDB.exe delete MSSQLLocalDB
1.重新创建LocalDB的默认示例:
SqlLocalDB.exe create MSSQLLocalDB

相关问题