如何将LocalDB添加到Visual Studio 2015社区的SQL Server对象资源管理器?

时间:2015-09-28 19:26:24

标签: sql-server visual-studio-2015 localdb

问题

我不明白如何在SQL Server对象资源管理器中显示LocalDB。在某些虚拟机上,它会自动显示,在某些其他虚拟机上则不会。谷歌搜索了几个小时后,我还是没有得到它。

现状

  1. 我有一个干净的VM
  2. 我安装了Visual Studio 2015社区(所有默认设置)
  3. 我让一个控制台应用程序运行(实体框架6,代码优先,控制台应用程序),它在另一个虚拟机上运行并自动创建一个数据库,然后在SQL Server对象资源管理器中显示;但不是这次
  4. 错误说:

    System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 52 - Unable to locate a Local Database Runtime installation. Verify that SQL Server Express is properly installed and that the Local Database Runtime feature is enabled.) ---> System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified
    

    因此,在此VM上,不会创建任何数据库,也不会在SQL Server对象资源管理器的SQL Server节点中显示任何内容。

    Connecting to LocalDB

    我想知道

    • Visual Studio 2015社区附带LocalDB;所以一切都应该开箱即用,但事实并非如此,我不知道为什么
    • LocalDB数据库只是一对文件(* .mdf和* .ldf)
    • 我看到在C:\Users\<username>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB的默认数据库位置创建的文件;但是在这个VM上,没有这样的文件夹
    • App.config每次都像这样(当我在Visual Studio中安装Entity Framework 6 NuGet包管理器时,它会自动创建):

    的App.config

    <configuration>
      <configSections>
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </configSections>
      <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
          <parameters>
            <parameter value="mssqllocaldb" />
          </parameters>
        </defaultConnectionFactory>
        <providers>
          <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
        </providers>
      </entityFramework>
    </configuration>
    

    其他随机评论

    • 早些时候,对于SQL Server,有必要打开某些端口,但据我所知,LocalDB在Visual Studio启动时按需单独运行。
    • 我不知道如何调试SQLException
    • LocalDB是否未与Visual Studio 2015社区打包在一起,是否需要单独安装?

8 个答案:

答案 0 :(得分:47)

我最近在安装VS2015 Community Edition Update 1时遇到了同样的问题。

我通过从 VS2015安装程序安装程序添加“ SQL Server数据工具 ”来解决问题...当我运行时安装程序第一次选择“自定义”安装类型而不是“默认”。我想看看哪些安装选项可用,但没有选择与已经勾选的内容不同的东西。我的假设是,已经勾选的内容基本上都是默认安装。但事实并非如此。

答案 1 :(得分:25)

检查是否安装了LocalDb:

  • 运行SSMS(SQL Server Management Studio)。
  • 尝试使用Windows身份验证连接到此实例(localdb)\V11.0

如果出现错误Cannot connect to (localdb)\V11.0.,请将实例名称更改为(localdb)\MSSQLLocalDB,如果仍然遇到相同的错误,请再次尝试连接。

按照以下步骤安装LocalDb:

  • 关闭SSMS。
  • 关闭VS(Visual Studio),如果它正在运行。
  • 转到Start Menu并输入搜索sqlLocalDb
  • 从显示的结果中选择sqlLocalDb.msi并点击它。
  • SQL安装程序将开始安装LocalDB

完成安装后重新运行SSMS并尝试连接到(localdb)\V11.0(localdb)\MSSQLLocalDB实例,其中一个应该可以运行,具体取决于您拥有的Visual Studio版本。< / p>

您还可以通过简单地创建新的sql文件验证是否已使用Visual Studio安装了localdb,并转到文件顶部标题上的连接图标,默认情况下列出了您可以连接的所有服务器,包括{ {1}}如果已安装。

除了上面提到的查找localdb的方法之外,您还可以使用服务器计算机上的localdbMS windows power shell甚至windows command processor CMD并运行这些命令{{ 1}}和NuGet package manager console将显示localdb名称(如果已安装)并且已在您的计算机上安装并运行MSSQL服务器版本。

答案 2 :(得分:14)

如果您不确定是否安装了本地数据库,或者不确定应该使用哪个数据库名称来连接它 - 请尝试运行'sqllocaldb info'命令 - 它将显示现有的localdb数据库。

现在,据我所知,本地数据库应该与Visual Studio 2015一起安装。但可能它不是必需的功能,如果出现问题或由于某种原因无法安装 - Visual Studio安装仍在继续(请注意,这只是我的猜测)。因此,为了安全起见,不要依赖它将始终与VS一起安装。

答案 3 :(得分:8)

  1. 搜索&#34; sqlLocalDb&#34;从开始菜单,
  2. 点击运行命令
  3. 返回VS 2015工具/连接数据库,
  4. 选择MSSQL服务器,
  5. 输入(localdb)\ MSSQLLocalDB作为服务器名称
  6. 选择您的数据库并准备就绪。

答案 4 :(得分:4)

我尝试只安装在我的VS 2015安装中遗漏的LocalDB。 遵循以下URL&amp;有选择地下载LocalDB(2012)安装程序,其大小只有33mb :)

https://www.microsoft.com/en-us/download/details.aspx?id=29062

如果您正在寻找适用于Visual Studio 2015集成的SQL Server数据工具,请从以下位置下载:

https://msdn.microsoft.com/en-us/mt186501

答案 5 :(得分:1)

  1. 在Windows开始菜单中搜索 sqllocaldb localDB ,然后右键单击打开的文件位置
  2. 在您从搜索中找到的文件位置打开命令提示符
  3. 在命令提示符下键入sqllocaldb start

  4. 使用<add name="defaultconnection" connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=tododb;Integrated Security=True" providerName="System.Data.SqlClient" />

答案 6 :(得分:0)

Template['messenger'].onCreated(function(){
    $(function(){
        Template['messenger'].methods.scrollOnNewMessages().start();
    })
});

Template['messenger'].methods = {

    scrollOnNewMessages : function () {
        return {
            oldCount : 0,

            start : function () {
                this.oldCount = Messages.find().count();
                setInterval(this.funcToRepeat, 400);
            },

            funcToRepeat : function () {
                var newCount = Messages.find().count();
                var updated = this.oldCount !== newCount;
                if(updated){
                    this.oldCount = newCount;
                    Template['messenger'].methods.scrollDown();
                }
            }

        }
    },

    scrollDown: function () {
        var height = $(".messageEntry").outerHeight() + 3;
        var scrollLength = $('.messageEntry').length * height - $("#messageFeed").height();
        $('#messageFeed').animate({scrollTop:scrollLength}, 400, 'swing');
    },
}

我注意到您在上面提到的路径中有localDB并且版本为v11.0。 所以我在Add Connection对话框中输入了(LocalDB \ V11.0),它对我有用。

答案 7 :(得分:0)

如果您不知道您的 localdb ServerName,另一种解决方案(至少对于 VS2019):

工具 => SQL Server => 新查询

并在弹出窗口中选择本地,然后您应该可以找到本地数据库的服务器名称(以及更多)