【问题标题】:How to connect to LocalDB in Visual Studio Server Explorer?如何在 Visual Studio Server Explorer 中连接到 LocalDB?
【发布时间】:2014-03-01 02:21:42
【问题描述】:

我不敢相信,经过一个小时的搜索,我找不到一个可行的解决方案。我正在关注 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 中创建数据库。这是什么原因造成的?

标签: visual-studio entity-framework-6 localdb server-explorer sql-server-2012-localdb


【解决方案1】:

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.

【讨论】:

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

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

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

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

【讨论】:

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

选择:

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

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

【讨论】:

  • 不知何故这是 2015 年 4 月 28 日唯一有效的答案
  • same here vs2015.. 这就是答案.. 我猜他们重命名了 localDb?
  • 这个是在 Win 8.1 上为 VS2015 RC 做的。
  • 也适用于 vs2017。
【解决方案4】:

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

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

这很简单......

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

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

完成。

【讨论】:

    【解决方案5】:

    它对我有用。

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

    【讨论】:

      【解决方案6】:

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

      使用SqlLocalDB.exe info 打开一个 PowerShell 检查它的名称以及它是否使用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 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/en-us/sql/tools/sqllocaldb-utility 有关于如何为您的应用程序创建用户的说明

      【讨论】:

        【解决方案7】:

        修复不起作用。

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

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

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

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

        【讨论】:

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

        Visual Studio 2015 RC,已安装 LocalDb 12,与之前的说明类似,但仍然不需要知道“魔术”,在使用之前,默认实例应该已打开... 吐槽完毕,无解:

        cmd> sqllocaldb start
        

        会显示什么

        LocalDB instance "MSSQLLocalDB" started.
        

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

        (localdb)\MSSQLLocalDB
        

        不输入数据库名称,点击“测试连接”。

        【讨论】:

          【解决方案9】:

          以管理员身份运行 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/(右键) Data Connections/Add Connection 数据源:Microsoft SQL Server (SqlClient) 服务器名称:(localdb)\MSSQLLocalDB 登录到服务器:使用 Windows 身份验证 按“测试连接”,然后确定。

          9. 工作完成

          【讨论】:

            【解决方案10】:

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

            另一种方式

            Visual Studio 2017 服务器名称是:

            (localdb)\MSSQLLocalDB
            

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

            【讨论】:

            • 如果您没有将 SQLExpress 安装到默认实例,您也可以尝试... '(localdb)'
            【解决方案11】:

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

            我的步骤如下:

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

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

            【讨论】:

              【解决方案12】:

              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

              【讨论】:

                【解决方案13】:

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

                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(点击刷新) 连接到数据库:在下拉列表中选择您的新数据库。

                希望对你有帮助。

                【讨论】:

                  【解决方案14】:

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

                  【讨论】:

                    猜你喜欢
                    • 2021-10-25
                    • 2015-05-03
                    • 2012-06-14
                    • 2015-09-05
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2015-09-22
                    • 1970-01-01
                    相关资源
                    最近更新 更多