C# 我能';t在未安装SqlServer Express的计算机上,无法获得Sql Server localdb连接
我有一个使用Visual Studio 2012编写的C#控制台应用程序。在应用程序中,我使用Sql Server localdb连接到数据库来存储信息。这在几台安装了VisualStudio的计算机上运行良好C# 我能';t在未安装SqlServer Express的计算机上,无法获得Sql Server localdb连接,c#,sql-server,visual-studio-2012,localdb,sql-server-2014-express,C#,Sql Server,Visual Studio 2012,Localdb,Sql Server 2014 Express,我有一个使用Visual Studio 2012编写的C#控制台应用程序。在应用程序中,我使用Sql Server localdb连接到数据库来存储信息。这在几台安装了VisualStudio的计算机上运行良好 <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config
<?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而不需要安装更大的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\u控制台
11:21:07912[1]信息测试控制台。程序-当前目录为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有关。有人能告诉我我的问题可能是什么吗?问题与安装SQL Server Express LocalDB 2014而不是2012有关。在该版本中,MS更改了连接字符串要求。而不是
数据源=(LocalDB)\V11.0
,连接字符串为数据源=(LocalDB)\MSSQLLocalDB
。更改我的连接字符串后,该程序在仅安装了LocalDB 2014的计算机上正确运行。以下是有关它的文章链接:
也
您需要确保安装了.NET Framework 4.0,同样重要的是,安装了.NET Framework 4.0.2更新(KB#2544514) 系统更新后,您可以从以下位置下载SqlLocalDb安装程序:
使用“数据源=(LocalDB)\MSSQLLocalDB”对我来说也不起作用。我必须使用“数据源=(LocalDB)\V12.0”访问数据库,并且为了工作,我需要先运行这个命令“sqllocaldb创建”V12.0。有关此链接的更多详细信息具有连接字符串的构建<代码>(LocalDB)\v11.0将与此链接上给出的localDB
ENU\x64\SqlLocalDB.MSI一起使用
我在未安装Visual Studio的目标系统上尝试了此方法。此版本将只与安装了SqlLocalDB.msi
的数据库连接。无需在目标系统上安装SqlExpress
。问题是,如果同时安装了Visual Studio 2013和Visual Studio 2017,则有两个版本已安装的LOCAL数据库的名称
<?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>
Visual Studio 2013-(localdb)\v11.0Microsoft SQL Server 2012(SP1)-11.0.3000.0(X64)
2012年10月19日13:38:57
版权所有(c)微软公司
Windows NT 6.2(内部版本9200:)上的快速版(64位)
Visual Studio 2017-(localdb)\MSSQLLOCALDBMicrosoft SQL Server 2016(SP1)(KB3182545)-13.0.4001.0(X64)
2016年10月28日18:17:30
版权所有(c)微软公司
Windows 10 Pro 6.3(版本17134:)上的快速版(64位)
在安装Visual Studio 2017之前,我能够连接到(localdb)\v11.0,但在安装Visual Studio 2017之后,我无法连接到SQL Express的早期版本(localdb)\v11.0,但我能够使用C#连接到(localdb)\MSSQLLOCALDB。
我能够从SQL Server Management Studio连接到这两个版本,没有任何问题。问题的可能重复与安装SQL Server Express LocalDB 2014有关。在该版本中,MS更改了连接字符串要求。连接字符串不是“数据源=(LocalDB)\V11.0”,而是“数据源”=(LocalDB)\MSSQLLocalDB”。更改连接字符串后,该程序在仅安装了LocalDB 2014的计算机上正确运行。以下是一篇关于它的文章的链接:用于代码迁移(更新数据库
等)。对于我来说,实例名称(LocalDB)\MSSQLLocalDB无法工作。无论如何,感谢您的尝试:我安装了Microsoft SQL Server 2014,并且安装了“(LocalDB)\MSSQLLocalDB"路径解决了问题。MSSQLLocalDB
只是一个实例的名称。您可以根据需要创建任意多个实例,并按自己的意愿命名。打开cmd
并输入sqllocaldb i
。这将列出可用的实例。在早期版本的LocalDB automatic中,使用:sqllocaldb c YouNewInstance
创建一个新实例ally在当前版本中创建了一个名为v11.0
的实例。此默认实例名为MSSQLSLOCALDB
谢谢!这同样适用于我,但我创建了名为MSSQLSLOCALDB的实例,运行“sqllocaldb create MSSQLSLOCALDB”。如果没有在与SQL server相同的计算机上安装VS,我想默认情况下不会创建它。在我的情况下,这是一个完整的SQL server安装(不是express)