ChatGPT解决这个技术问题 Extra ChatGPT

如何在 Visual Studio Server Explorer 中连接到 LocalDB?

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

将 Visual Studio Server Explorer 连接到 LocalDB 的步骤是什么?

我经常同情刚进入这个行业的人。 20 年前,这些工具实际上更容易使用。文档现在也勉强够用,而且在大多数情况下,还不够。我现在在 MSDN 上看到“文档”,它简单地解释了一种方法,例如“foo”->“这是 foo 方法”。真的吗,微软?技术作家怎么了?在线图书(真实)发生了什么?
确保您以管理员身份运行 Visual Studio。
如果您可以使用 Visual Studio 的 SQL Server Object Explorer 而不是 Server Explorer。这是更简单的解决方案(更少的手动配置),请查看我的答案:stackoverflow.com/a/41906391/3645638
我的设置在 sqlserverexpress 中而不是在 localdb 中创建数据库。这是什么原因造成的?

R
RationalDev likes GoFundMonica

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

(localdb)\v11.0

Visual Studio 2015 和 Visual Studio 2017 更改为:

(localdb)\MSSQLLocalDB

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

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

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

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

View/SQL Server Object Explorer.

是的,这应该是第一次工作。但如果没有,接受答案中的步骤应该启动服务并使其工作。
也许 SQL Server 对象资源管理器为我启动了它,因为我使用它来找出 Entity Framework 使用的服务器名称。我找到了这个问题,但是有点害怕尝试答案,因为我希望得到更简单的东西并且没有完全阅读它,因为我认为我必须使用管道名称:)
我只是对细节视而不见,还是因为设置不直观而感到非常沮丧?无论是在 2012 年还是 2015 年,他们似乎几乎在整个 IDE 中都隐藏了这样的东西。
谢谢你。我绞尽脑汁,直到找到你的答案。
为什么是微软,为什么?为什么要更改名称而不更新您的文档? (感谢您提供 VS 2015 路径)
2
2 revs, 2 users 86%

好的,回答我自己的问题。

将 LocalDB 连接到 Visual Studio Server Explorer 的步骤

打开命令提示符运行 SqlLocalDB.exe start v11.0 运行 SqlLocalDB.exe info v11.0 复制以 np:\... 开头的实例管道名称在 Visual Studio 中选择 TOOLS > Connect to Database... 对于服务器名称,输入 (本地数据库)\v11.0.如果它不起作用,请使用您之前复制的实例管道名称。您还可以使用它来连接 SQL Management Studio。在下一个下拉列表中选择数据库 单击确定

https://i.stack.imgur.com/Wuvbu.png


如今,MS 平台上的几乎每一个动作都涉及到一些魔法或预先记忆的知识......当一套全新的魔法到位时,谁会在 5 年内支持这些事情?
谢谢!只是为了添加这个出色的答案(和出色的问题):SqlLocalDb info 将列出所有服务器名称。就我而言,在 EF 代码优先魔术之后,我的数据库以 MSSQLLocalDB 而不是 v11.0 结束,因此我在 Add Connection 对话框中输入了 (localdb)\MSSQLLocalDB
SqlLocalDb.exe 在我的系统路径中出现两次 - 首先是 C:\Program Files\Microsoft SQL Server\110\Tools\Binn,然后是 C:\Program Files\Microsoft SQL Server\120\Tools\Binn。因此,只有早期版本才会被调用!我安装了 VS2012 和 VS 2013。
我相信越来越多的人正在从微软的产品中转向其他编程语言。这种简单的配置和文件位置的东西已经变得比其他语言所缺乏的更难。如果他们根本没有。
我整个下午都在为此挠头。为什么他们必须把它弄得如此复杂,而过去它是如此的容易?谢谢您的帮助。
N
Nasreddine

选择:

数据源:Microsoft SQL Server (SqlClient) 服务器名称:(localdb)\MSSQLLocalDB 登录服务器:使用 Windows 身份验证

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

https://i.stack.imgur.com/c35LA.png


不知何故,这是 2015 年 4 月 28 日唯一有效的答案
同样在这里vs2015 ..这就是答案..我猜他们重命名了localDb?
这个是在 Win 8.1 上为 VS2015 RC 做的。
也适用于 vs2017。
S
Svek

改用 SQL Server 对象资源管理器 (SSOX)

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

这很简单......

从视图菜单中,打开 SQL Server 对象资源管理器。

https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/working-with-sql/_static/ssox.png

右键单击 {YourTableName} 表 > 查看设计器

https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/working-with-sql/_static/design.png

完毕。


A
Ader Hwang

它对我有用。

打开命令提示符运行“SqlLocalDB.exe start”系统响应“LocalDB 实例“mssqllocaldb”已启动。”在VS中, 查看/服务器资源管理器/(右键)数据连接/添加连接数据源:Microsoft SQL Server (SqlClient) 服务器名称:(localdb)\MSSQLLocalDB 登录服务器:使用Windows认证 按“测试连接”,然后好的。


s
simbo1905

以下内容适用于使用 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 启动它。当它运行时,您会看到以 np:\\ 开头的 Instance pipe name:。复制该命名管道字符串。在 VS2017 中打开视图 Server Explorer 并创建一个类型为 Microsoft SQL Server (SqlClient) 的新连接(不要被您想要完整连接类型的其他文件类型所迷惑)并将 Server name: 设置为您的实例管道名称从 PowerShell 复制。

我还将 Connect to database 设置为与在使用 dotnet ef database update 设置的 Dotnet Core/Entity Framework Core 项目中工作的连接字符串中的数据库相同的数据库。

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

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

https://docs.microsoft.com/en-us/sql/tools/sqllocaldb-utility 上提供了有关如何为您的应用程序创建用户的说明


a
alejandrob

修复不起作用。

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

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

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

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


这个 StackOverflow Q/A 大约是 LocalDB。我认为您的答案是关于启用其他 SQL 实例。
我在本地环境中尝试了此修复程序,它按预期对发布的原始问题进行了修复,而不是您可能认为的那样。不要假设企业版 = 企业环境。我们中的一些人使用该版本在工作组机器上进行本地开发。
即使我仍然必须输入 (localdb) 而不是使用浏览器,这实际上为我修复了它,所以它确实很好地回答了这个问题。
O
OzBob

Visual Studio 2015 RC,已安装 LocalDb 12,与之前类似的说明,但仍然不需要知道“魔术”,在使用它之前,默认实例应该已经打开......咆哮完成,没有解决方案:

cmd> sqllocaldb start

哪个会显示

LocalDB instance "MSSQLLocalDB" started.

您的实例名称可能不同。无论哪种方式都弹出到 VS 并打开服务器资源管理器,右键单击数据连接,选择添加,选择 SQL Server,在服务器名称类型中:

(localdb)\MSSQLLocalDB

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


g
guestDoug

以管理员身份运行 CMD。

从开始菜单'cmd' - 等待它找到它。右键单击 cmd,然后选择以管理员身份打开 类型:cd C:\Program Files\Microsoft SQL Server\120\Tools\Binn 类型:SqlLocalDB 现在开始 类型:SqlLocalDB info 显示可用的正在运行的 sql 实例...选择你想要的...要查找有关实例类型的更多信息:SqlLocalDB info instanceName now from VS 您可以在 VS 中设置连接,查看/服务器资源管理器/(右键单击)数据连接/添加连接数据源:Microsoft SQL Server(SqlClient)服务器名称: (localdb)\MSSQLLocalDB 登录服务器:使用 Windows 身份验证 按“测试连接”,然后确定。任务完成


S
Samuel

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

替代方式

Visual Studio 2017 服务器名称为:

(localdb)\MSSQLLocalDB

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


如果您没有将 SQLExpress 安装到默认实例,您也可以尝试... '(localdb)'
D
David Ferenczy Rogožan

我按照上面的步骤进行操作,但是我忘记在 Visual Studio 2015 配置之前安装 SQL Server 2014 LocalDB。

我的步骤如下:

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

希望这对任何人都有帮助。


K
Kenan Cidali

https://aspblogs.blob.core.windows.net/media/dixin/Open-Live-Writer/89ee21b2c263_49AE/image_thumb_5.png Windows Application Log Error 计算机\HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\UserInstances{2DD3D445-34C1-4251-B67D-7DFEED432A87}

只需将 ParentInstance 更改为 MSSQL14E.LOCALDB 或 MSSQL15E.LOCALDB。

https://weblogs.asp.net/dixin/installing-sql-server-2017-2019-localdb-and-resolve-the-engine-versioning-problem?__r=8d90635095e1cd4


A
Armando S

场景:Windows 8.1,VS2013 Ultimate,SQL Express 已安装并运行,SQL Server Browser 已禁用。这对我有用:

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

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

我希望它有所帮助。


B
Ben S

对于 SQL Server 2017 和 Visual Studio 2015,我使用了 localhost\SQLEXPRESS

https://i.stack.imgur.com/AWIlR.jpg