如何在Visual Studio Server资源管理器中连接到LocalDB?


240

经过一个小时的搜索,我不敢相信我无法找到可行的解决方案。我关注的是有关Entity Framework 6.0的本文该文章提供了有关Code First的简单演练。我创建了该项目,并安装了最新的EF Nuget软件包以供该项目进行编译。我还验证了我已经安装了Visual Studio 2013附带的Microsoft SQL Server 2012 Express LocalDB。我的本地计算机上没有安装任何其他SQL实例。程序运行,并将条目添加到数据库中并在控制台中输出。但是,当文章说“检查您的localdb”时,并没有说如何!我没有在项目文件夹下创建任何“ .mdf”或“ .ldf”文件。我尝试了各种方法来连接Visual Studio' s Server Explorer到LocalDB。向导找不到(localdb)或在服务器资源管理器中找不到任何提供程序来接受连接字符串,就像(localdb)\v11.0;Integrated Security=true;我在StackOverflow中问过这几个地方一样,但是没有答案可用或标记为答案。请帮忙,这不必令人沮丧!

将Visual Studio Server资源管理器连接到LocalDB的步骤是什么?


70
我经常同情刚进入这个行业的人。20年前,这些工具实际上更易于使用。现在的文档还不够用,在大多数情况下还不够。我现在在MSDN上看到“文档”,它只是解释了一种方法,例如“ foo”->“这是foo方法”。真的,微软吗?技术作家怎么了?在线图书发生了什么(真实)?
匹兹堡DBA 2015年

1
确保您以管理员身份运行Visual Studio。
达伦·格里菲斯

4
如果可以使用Visual Studio的SQL Server Object Explorer而不是Server Explorer。它是更简单的解决方案(较少的手动配置),请查看我的答案:stackoverflow.com/a/41906391/3645638
Svek

我的安装程序在sqlserverexpress中创建数据库,而不是在localdb中创建数据库。是什么原因造成的?
Jason Cheng

Answers:


282

Visual Studio 2012中,我要做的就是输入:

(localdb)\v11.0

Visual Studio 2015Visual Studio 2017更改为:

(localdb)\MSSQLLocalDB

在以下位置添加Microsoft SQL Server Data源时作为服务器名称:

View/Server Explorer/(Right click) Data Connections/Add Connection

然后填充数据库名称。我不需要执行已接受答案中的所有其他步骤,但是如果服务器名称组合框中的服务器名称是自动可用的,那会很好。

您还可以使用以下方法浏览计算机上可用的LocalDB数据库名称:

View/SQL Server Object Explorer.

4
是的,这应该是第一次工作。但是,如果没有,则应接受已接受答案中的步骤以启动服务并使之正常运行。
orad 2014年

也许SQL Server Object Explorer是为我启动的,因为我使用它来查找实体框架使用的服务器名称。我已经找到了这个问题,但是由于我希望寻找更简单的东西而没有完全读完它,因为我以为我必须使用管道名称,所以有点不敢尝试:)
RationalDev喜欢GoFundMonica,2014年

我只是对细节一无所知,还是设置起来不那么直观让我非常沮丧?无论是在2012年还是2015年,似乎他们在IDE中几乎都隐藏了这样的内容。
Rex_C

谢谢。我一直在绞尽脑汁,直到找到答案。
Alexandre N.

5
为什么是微软,为什么?为什么要更改名称而不更新文档?(感谢您使用VS 2015之路)
Thibault D.

256

好,回答我自己的问题。

将LocalDB连接到Visual Studio Server资源管理器的步骤

  1. 打开命令提示符
  2. SqlLocalDB.exe start v11.0
  3. SqlLocalDB.exe info v11.0
  4. 复制以np:\ ...开头的实例管道名称
  5. 在Visual Studio中,选择工具>连接到数据库...
  6. 对于服务器名称,输入(localdb)\v11.0。如果不起作用,请使用之前复制的实例管道名称。您还可以使用它与SQL Management Studio连接。
  7. 在下一个下拉列表中选择数据库
  8. 点击确定

在此处输入图片说明


86
如今,在MS平台上几乎所有的动作都包含一些魔术知识或先前记忆的知识....当一套全新的魔术出现时,谁将在5年内支持这些事情?
tbone 2014年

34
谢谢!只是添加到这个出色的答案(和出色的问题): SqlLocalDb info将列出所有服务器名称。以我为例,在执行EF代码优先魔术之后,我的数据库以MSSQLLocalDBnot 结束v11.0,因此我输入(localdb)\MSSQLLocalDB了Add Connection对话框。
饼干314

1
SqlLocalDb.exe在我的系统路径中出现两次-首先在C:\ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn中,然后在C:\ Program Files \ Microsoft SQL Server \ 120 \ Tools \ Binn中。因此,只有较早的版本会被调用!我同时安装了VS2012和VS 2013。
约翰·潘科维奇

2
我相信,越来越多的人被Microsoft的东西吸引到其他编程语言。这种简单的配置资料和文件位置资料已经变得比其他语言所缺少的更难。如果他们根本没有。
JustJohn

4
我整个下午都在为此挠头。当以前如此容易流血时,为什么还要使它变得如此复杂呢?谢谢您的帮助。
乔治·威廉姆斯

71

选择:

  1. 数据源: Microsoft SQL Server (SqlClient)
  2. 服务器名称: (localdb)\MSSQLLocalDB
  3. 登录到服务器: Use Windows Authentication

按刷新按钮获取数据库名称:)

屏幕截图


1
不知何故,这是
2015年

4
vs2015一样。.这就是答案..我想他们改名为localDb了吗?
punkouter,2015年

1
这是在Win 8.1上针对VS2015 RC做到的。
ScottG


也可以在vs2017中使用。
Toke Breer-Mortensen

25

使用SQL Server对象资源管理器(SSOX)代替

与其他答案不同,此方法使用:
-无需特殊命令。
-没有复杂的配置。
只需使用SQL Server对象资源管理器

非常简单...

  • 从“ 查看”菜单中,打开“ SQL Server对象资源管理器”

之一

  • 右键单击{YourTableName}表> View Designer

二

做完了


16

它为我工作。

  1. 打开命令提示符
  2. 运行“ SqlLocalDB.exe启动”
  3. 系统响应“ LocalDB实例“ mssqllocaldb”已启动”。
  4. 在VS中,View / Server Explorer /(右键)数据连接/添加连接
    • 数据源:Microsoft SQL Server(SqlClient)
    • 服务器名称:(localdb)\ MSSQLLocalDB
    • 登录到服务器:使用Windows身份验证
  5. 按“测试连接”,然后单击确定。

8

以下内容适用于使用SQLServer Express 2016的Windows 10上的Visual Studio 2017 Community Edition。

打开PowerShell,检查它使用的名称SqlLocalDB.exe info以及它是否与一起运行SqlLocalDB.exe info NAME。这是我的机器上的样子:

> SqlLocalDB.exe info
MSSQLLocalDB
> SqlLocalDB.exe info MSSQLLocalDB
Name:               mssqllocaldb
Version:            13.0.1601.5
Shared name:
Owner:              DESKTOP-I4H3E09\simon
Auto-create:        Yes
State:              Running
Last start time:    4/12/2017 8:24:36 AM
Instance pipe name: np:\\.\pipe\LOCALDB#EFC58609\tsql\query
>

如果它没有运行,则需要使用来启动它SqlLocalDB.exe start MSSQLLocalDB。运行时,您会看到以Instance pipe name:开头的np:\\。复制该命名管道字符串。在VS2017中打开视图Server Explorer并创建一个新的连接类型Microsoft SQL Server (SqlClient)(不要被想要完整胖连接类型的其他文件类型所迷惑),并将设置为Server name:您从PowerShell复制的实例管道名称。

我还设置了 Connect to database与使用Dotnet Core / Entity Framework Core项目建立的连接字符串中使用的连接数据库相同的数据库dotnet ef database update

您可以使用sqlcmd和命名管道字符串登录并创建数据库:

sqlcmd -S np:\\.\pipe\LOCALDB#EFC58609\tsql\query 1> create database EFGetStarted.ConsoleApp.NewDb; 2> GO

有关如何为您的应用程序创建用户的说明,请访问https://docs.microsoft.com/zh-cn/sql/tools/sqllocaldb-utility


7

Visual Studio 2015 RC,已安装LocalDb 12,与之前的说明类似,但仍不需要了解“魔术”,在使用此功能之前,应已打开默认实例... Rant已完成,没有解决方案:

cmd> sqllocaldb start

将显示

LocalDB instance "MSSQLLocalDB" started.

您的实例名称可能有所不同。无论哪种方式,都跳到VS并打开Server Explorer,右键单击Data Connections,选择Add,选择SQL Server,在服务器名称类型中:

(localdb)\MSSQLLocalDB

在不输入数据库名称的情况下,单击“测试连接”。


6

修复无效。

完全如示例图中所示,所有这些步骤仅提供对“系统”数据库的访问,而没有选择您要访问的现有用户数据库的选项。

访问本地(非Express Edition)Microsoft SQL Server实例的解决方案位于SQL Server端:

  1. 打开运行对话框(WinKey + R)
  2. 类型:“ services.msc”
  3. 选择SQL Server浏览器
  4. 单击属性
  5. 将“禁用”更改为“手动”或“自动”
  6. 当“启动”服务按钮启用时,单击它。

做完了!现在,您可以从“连接属性”中的“服务器名称”列表中选择本地SQL Server。


7
此StackOverflow Q / A与LocalDB有关。我认为您的答案是关于启用其他SQL实例。
orad 2014年

我在本地环境上尝试了此修复程序,并且按发布的原始问题按预期进行了修复,而不是您可能认为的那样。不要以为企业版=企业环境。我们中的某些人将该版本用于工作组计算机上的本地开发。
alejandrob 2014年

即使我仍然必须输入(localdb)而不是使用浏览器,这实际上为我修复了它,因此它确实很好地回答了这个问题。
PeterJ 2014年

4

以admin身份运行CMD。

  1. 从开始菜单“ cmd”开始-等待它找到它。
  2. 右键单击cmd,然后选择以管理员身份打开
  3. 类型:cd C:\ Program Files \ Microsoft SQL Server \ 120 \ Tools \ Binn
  4. 类型:SqlLocalDB开始
  5. 现在键入:SqlLocalDB信息
  6. 显示可用的正在运行的SQL实例...选择所需的...
  7. 查找有关实例类型的更多信息:SqlLocalDB info instanceName

  8. 现在从VS您可以在VS中设置您的连接在View,Server / Explorer /(右键单击)数据连接/添加连接数据源:Microsoft SQL Server(SqlClient)服务器名称:(localdb)\ MSSQLLocalDB登录到服务器:使用Windows验证按“测试连接”,然后单击确定。

  9. 任务完成


3

Visual Studio 2017中最快的方法是转到工具-> SQL Server->新建查询。从本地数据库中选择,然后在底部选择所需的数据库名称。

替代方式

Visual Studio 2017服务器名称为:

(localdb)\MSSQLLocalDB

使用菜单工具->连接到数据库...添加新连接。


如果您没有将SQLExpress安装到默认实例,您也可以尝试...'(localdb)'
Jason Geiger,

1

我遵循了上述步骤,但是忘记了在Visual Studio 2015配置之前安装SQL Server 2014 LocalDB。

我的步骤如下:

  1. 安装SQL Server 2014 LocalDB;
  2. 打开Visual Studio 2015,然后打开SQL Server对象资源管理器
  3. 在SQL Server标记下找到您的LocalDB。

希望对大家有帮助。


0

场景:Windows 8.1,VS2013 Ultimate,已安装并正在运行的SQL Express,已禁用SQL Server浏览器。这为我工作:

  1. 首先,我在服务下启用了SQL Server Browser。
  2. 在Visual Studio中:打开“程序包管理器控制台”,然后键入:Enable-Migrations;然后键入Enable-Migrations -ContextTypeName YourContextDbName 在VS中创建了Migrations文件夹。
  3. 在Migrations文件夹中,您将找到“ Configuration.cs”文件,通过以下方式打开自动迁移:AutomaticMigrationsEnabled = true;
  4. 再次运行您的应用程序,环境创建一个DefaultConnection,您将从上下文中看到新表。这个新的连接指向localdb。创建的连接字符串显示:Data Source =(LocalDb)\ v11.0 ...(更多参数和创建的mdf文件的路径)

现在,您可以使用服务器名称创建一个新的连接:(LocalDb)\ v11.0(单击刷新)连接到数据库:在下拉列表中选择新数据库。

希望对您有所帮助。


-1

在SQL Server 2017和Visual Studio 2015中,我使用了 localhost\SQLEXPRESS

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.