web-dev-qa-db-fra.com

Comment ajouter LocalDB à l'Explorateur d'objets SQL Server de la communauté Visual Studio 2015?

Problème

Je ne comprends pas comment faire apparaître LocalDB dans l'Explorateur d'objets SQL Server. Sur certaines machines virtuelles, il apparaît automatiquement, sur d'autres, il n'en est rien. Malgré tout, après avoir passé des heures à googler, je ne comprends pas.

Situation actuelle

  1. J'ai une VM propre
  2. J'ai installé Visual Studio 2015 Community (tous les paramètres par défaut)
  3. J'ai laissé une application console s'exécuter (Entity Framework 6, code-first, application console), qui fonctionnait sur un autre VM et créait automatiquement une base de données qui s'est ensuite affichée dans l'explorateur d'objets SQL Server; mais pas cette fois

L'erreur dit:

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

Ainsi, sur cette machine virtuelle, aucune base de données n'est créée et rien ne s'affiche dans le nœud SQL Server de l'explorateur d'objets SQL Server.

 Connecting to LocalDB

Ce que je pense savoir

  • La communauté Visual Studio 2015 est fournie avec LocalDB; donc tout devrait fonctionner comme prévu, mais ça ne marche pas, et je ne sais pas pourquoi
  • Les bases de données LocalDB ne sont qu'une paire de fichiers (* .mdf et * .ldf)
  • J'ai vu les fichiers en cours de création à l'emplacement par défaut de la base de données à C:\Users\<username>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB; mais sur cette machine virtuelle, il n'y a pas un tel dossier
  • Le App.config ressemblait chaque fois à ceci (et il a été créé automatiquement de cette façon lorsque j'ai installé Entity Framework 6, le gestionnaire de packages NuGet dans Visual Studio):

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>

Autres commentaires aléatoires

  • Auparavant, avec SQL Server, il était nécessaire d'ouvrir certains ports, mais LocalDB s'exécute, si je comprends bien, en tant que processus séparé à la demande lorsqu'il est démarré par Visual Studio.
  • Je ne sais pas comment déboguer la SQLException
  • LocalDB n'est-il pas fourni avec Visual Studio 2015 Community et dois-je l'installer séparément?
53
Lernkurve

J'ai eu le même problème aujourd'hui en installant récemment VS2015 Community Edition Update 1. 

J'ai résolu le problème en ajoutant simplement les "Outils de données SQL Server" du programme d'installation de VS2015 ... Lorsque j'ai exécuté le programme d'installation la première fois, j'ai sélectionné le type d'installation "Personnalisé" au lieu de "Par défaut". Je voulais voir quelles options d'installation étaient disponibles mais ne rien sélectionner de différent de ce qui était déjà coché. Mon hypothèse était que ce qui était déjà coché était essentiellement l'installation par défaut. Mais ce n'est pas.

47
Gonzalo Lucero

Pour vérifier si LocalDb est installé ou non:

  • Exécutez SSMS (SQL Server Management Studio).
  • Essayez de vous connecter à cette instance (localdb)\V11.0 en utilisant l'authentification Windows.

Si une erreur est générée, Cannot connect to (localdb)\V11.0. change le nom de l'instance en (localdb)\MSSQLLocalDB et essayez à nouveau de vous connecter, si vous obtenez toujours la même erreur.

Suivez ces étapes pour installer LocalDb:

  • Fermez SSMS.
  • Fermez VS (Visual Studio) s'il est en cours d'exécution.
  • Allez à Start Menu et tapez search sqlLocalDb.
  • Parmi les résultats qui apparaissent, choisissez sqlLocalDb.msi et cliquez dessus.
  • Le programme d'installation SQL va commencer à installer LocalDB 

une fois l'installation terminée, relancez SSMS et essayez de vous connecter à l'une des instances (localdb)\V11.0 ou (localdb)\MSSQLLocalDB. L'une d'elles devrait fonctionner en fonction de la version de Visual Studio que vous possédez.

Vous pouvez également vérifier que localdb est installé à l'aide de Visual Studio en créant simplement un nouveau fichier SQL et en cliquant sur l'icône de connexion située dans l'en-tête supérieur du fichier. Cette liste répertorie par défaut tous les serveurs auxquels vous pouvez vous connecter, y compris localdb si elle est installée.

Outre les méthodes mentionnées ci-dessus pour savoir si localdb est installé, vous pouvez également utiliser le MS windows power Shell ou windows command processor CMD ou même le NuGet package manager console sur votre ordinateur serveur et exécuter ces commandes sqllocaldb i et sqllocaldb v qui vous indiqueront le nom du localdb s'il est installé et le MSSQL. version du serveur installée et en cours d'exécution sur votre machine.

25
Ashraf Abusada

Si vous ne savez pas si la base de données locale est installée, ni quel nom de base de données utiliser pour vous y connecter, essayez d'exécuter la commande 'sqllocaldb info' - elle vous indiquera les bases de données localesdb existantes.

Pour autant que je sache, la base de données locale devrait être installée avec Visual Studio 2015. Mais ce n’est probablement pas une fonctionnalité requise, et en cas de problème ou si elle ne peut pas être installée pour une raison quelconque - l’installation de Visual Studio continue toujours (remarque: juste ma conjecture). Donc, pour être sûr, ne vous fiez pas, il sera toujours installé avec VS.

14
Evk
  1. Recherchez "sqlLocalDb" dans le menu de démarrage, 
  2. Cliquez sur la commande Exécuter, 
  3. Retournez à VS 2015 tools/connectez-vous à la base de données, 
  4. sélectionnez le serveur MSSQL, 
  5. entrez (localdb)\MSSQLLocalDB en tant que nom de serveur

Sélectionnez votre base de données et prêt à partir.

8
Janiya Hicks

J'ai essayé d'installer uniquement LocalDB, ce qui a été omis dans mon installation de VS 2015. Suivi sous l'URL et télécharger de manière sélective le programme d'installation de LocalDB (2012), qui ne fait que 33 Mo en taille :) 

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

Si vous recherchez l'intégration de SQL Server Data Tool pour Visual Studio 2015, veuillez le télécharger à partir de: 

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

4
Biki
  1. Recherchez sqllocaldb ou localDB dans le menu Démarrer de Windows et cliquez avec le bouton droit de la souris sur l'emplacement du fichier ouvert.
  2. Ouvrir l'invite de commande à l'emplacement du fichier trouvé lors de la recherche
  3. Sur votre commande, tapez sqllocaldb start

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

1
Karthikeyan VK
My App.config looks as below:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.Microsoft.com/fwlink/?LinkID=237468 -->
    <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="v11.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>

J'ai remarqué qu'il y a localDB dans le chemin que vous avez mentionné ci-dessus et que la version v11.0 . Est entrée dans le dialogue Ajouter une connexion (LocalDB\V11.0) et cela a fonctionné pour moi.

0
shilly