web-dev-qa-db-fra.com

Comment se connecter à LocalDB dans Visual Studio Server Explorer?

Je ne peux pas croire que je ne pouvais pas trouver une solution de travail après une heure de recherche. Je suis cet article sur Entity Framework 6.0, qui donne un aperçu du code d'abord. J'ai créé le projet et installé le dernier package EF Nuget pour le projet à compiler. J'ai également vérifié que Microsoft SQL Server 2012 Express LocalDB était fourni avec Visual Studio 2013. Aucune autre instance de SQL n'est installée sur mon ordinateur local. Le programme s'exécute et les entrées sont ajoutées à la base de données et sorties dans la console. Mais quand l'article dit "vérifie ta localdb", il ne dit pas comment! Je ne vois aucun fichier '.mdf' ou '.ldf' créé dans le dossier du projet. J'ai essayé tous les moyens pour connecter l'Explorateur de serveurs de Visual Studio à LocalDB. L'assistant ne peut pas localiser (localdb) ni aucun fournisseur dans l'Explorateur de serveurs pour accepter une chaîne de connexion telle que (localdb)\v11.0;Integrated Security=true; J'ai vu cette demande posée à plusieurs endroits dans StackOverflow mais aucune réponse ne fonctionne ou n'a été marquée comme réponse. S'il vous plaît aider, cela ne doit pas être aussi frustrant!

Quelles sont les étapes pour connecter Visual Studio Server Explorer à LocalDB?

221
orad

OK, répondant à ma propre question.

Étapes pour connecter LocalDB à Visual Studio Server Explorer

  1. Ouvrir l'invite de commande
  2. Exécuter SqlLocalDB.exe start v11.0
  3. Exécuter SqlLocalDB.exe info v11.0
  4. Copiez le nom du canal d'instance qui commence par np:\...
  5. Dans Visual Studio, sélectionnez OUTILS> Se connecter à la base de données ...
  6. Pour Nom du serveur, entrez (localdb)\v11.0. Si cela ne fonctionne pas, utilisez le nom du canal d'instance que vous avez précédemment copié. Vous pouvez également l'utiliser pour vous connecter à SQL Management Studio.
  7. Sélectionnez la base de données dans la liste déroulante suivante
  8. Cliquez sur OK

enter image description here

250
orad

Dans Visual Studio 2012 tout ce que je devais faire était d'entrer:

(localdb)\v11.0

Visual Studio 2015 et Visual Studio 2017 changé en:

(localdb)\MSSQLLocalDB

en tant que nom de serveur lors de l'ajout d'une source Microsoft SQL Server Data dans:

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

et puis les noms de base de données ont été remplis. Je n'ai pas eu besoin de faire toutes les autres étapes de la réponse acceptée, bien que ce serait bien si le nom du serveur était disponible automatiquement dans la liste déroulante des noms de serveurs.

Vous pouvez également parcourir les noms de base de données LocalDB disponibles sur votre ordinateur en utilisant:

View/SQL Server Object Explorer.
263
RationalDev

Sélectionner dans:

  1. Source de données: Microsoft SQL Server (SqlClient)
  2. Nom du serveur: (localdb)\MSSQLLocalDB
  3. Connectez-vous au serveur: Use Windows Authentication

Appuyez sur le bouton Actualiser pour obtenir le nom de la base de données :)

Screenshot

64
Kaps

Utilisez plutôt l'explorateur d'objets SQL Server (SSOX)

Contrairement aux autres réponses, cette approche utilise:
- Pas de commandes spéciales.
- Pas de configurations compliquées.
Il suffit d’utiliser l’explorateur d’objets de SQL Server

C'est assez simple ...

  • Dans le menu Affichage , ouvrez l'explorateur d'objets SQL Server .

one

  • Faites un clic droit sur la table {YourTableName}>> View Designer

two

Terminé.

19
Svek

Cela a fonctionné pour moi.

  1. Ouvrir l'invite de commande
  2. Exécuter "SqlLocalDB.exe start"
  3. La réponse du système "Instance LocalDB" mssqllocaldb "a démarré."
  4. Dans VS , View/Explorateur de serveurs/(clic droit) Connexions de données/Ajouter une connexion
    • Source de données: Microsoft SQL Server (SqlClient)
    • Nom du serveur: (localdb)\MSSQLLocalDB
    • Connectez-vous au serveur: utilisez l'authentification Windows
  5. Appuyez sur "Test Connection", puis sur OK.
16
Ader Hwang

Ce qui suit fonctionne avec Visual Studio 2017 Community Edition sous Windows 10 à l'aide de SQLServer Express 2016.

Ouvrez un PowerShell pour vérifier comment il s'appelle en utilisant SqlLocalDB.exe info et s'il est en cours d'exécution avec SqlLocalDB.exe info NAME. Voici à quoi cela ressemble sur ma machine:

> 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
>

S'il ne fonctionne pas, vous devez le démarrer avec SqlLocalDB.exe start MSSQLLocalDB. Quand il est lancé, vous voyez le Instance pipe name: qui commence par np:\\. Copiez cette chaîne de caractères nommée. Dans VS2017, ouvrez la vue Server Explorer et créez une nouvelle connexion de type Microsoft SQL Server (SqlClient) (ne vous laissez pas berner par les autres types de fichiers pour lesquels vous souhaitez utiliser le type de connexion Fat Fat) et définissez le paramètre Server name: sur soit le nom du canal d'instance que vous avez copié à partir de PowerShell.

J'ai également défini le Connect to database pour qu'il corresponde à la chaîne de connexion utilisée dans mon projet Dotnet Core/Entity Framework Core, qui a été configuré à l'aide de dotnet ef database update.

Vous pouvez vous connecter et créer une base de données à l'aide de sqlcmd et de la chaîne de caractères nommée:

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

Vous trouverez des instructions sur la création d’un utilisateur pour votre application à l’adresse https://docs.Microsoft.com/en-us/sql/tools/sqllocaldb-utility

8
simbo1905

Visual Studio 2015 RC, LocalDb 12 installé, instructions similaires à celles d’avant, mais ne devant toujours pas connaître la "magie"; avant de pouvoir utiliser cette instance, l’instance par défaut aurait dû être activée ... Rant complet, pas de solution :

cmd> sqllocaldb start

Qui affichera

LocalDB instance "MSSQLLocalDB" started.

Votre nom instance peut différer. Dans tous les cas, accédez à VS et ouvrez l'Explorateur de serveurs, cliquez avec le bouton droit de la souris sur Connexions de données, choisissez Ajouter, choisissez SQL Server, dans le type de nom de serveur:

(localdb)\MSSQLLocalDB

Sans entrer de nom de base de données, cliquez sur "Tester la connexion".

7
OzBob

Fix ne fonctionne pas.

Exactement comme dans l'illustration, toutes ces étapes fournissent uniquement un accès aux bases de données "système" et aucune option permettant de sélectionner les bases de données utilisateur existantes auxquelles vous souhaitez accéder.

La solution pour accéder à une instance de serveur Microsoft SQL locale (et non Express Edition) réside du côté de SQL Server:

  1. Ouvrir la boîte de dialogue Exécuter (WinKey + R)
  2. Type: "services.msc"
  3. Sélectionnez le navigateur SQL Server
  4. Cliquez sur Propriétés
  5. Remplacez "désactivé" par "manuel" ou "automatique"
  6. Lorsque le bouton de service "Démarrer" est activé, cliquez dessus.

Terminé! Vous pouvez maintenant sélectionner votre serveur SQL local dans la liste Nom du serveur dans les propriétés de connexion.

6
user3285866

Exécutez le CMD en tant qu'administrateur.

  1. depuis le menu de démarrage 'cmd' - attendez qu'il le trouve.
  2. Faites un clic droit sur cmd et sélectionnez Ouvrir en tant qu'administrateur.
  3. type: cd C:\Program Files\Microsoft SQL Server\120\Tools\Binn
  4. type: début SqlLocalDB
  5. maintenant, tapez: SqlLocalDB info
  6. Affiche les instances SQL disponibles en cours d'exécution ... choisissez ce que vous voulez ...
  7. pour en savoir plus sur le type d'instance: SqlLocalDB info instanceName

  8. maintenant, depuis VS, vous pouvez configurer votre connexion. Dans VS , View/Explorateur de serveurs/(clic droit) Connexions de données/Ajouter une connexion Source de données: Microsoft SQL Server (SqlClient) Nom du serveur: (localdb)\MSSQLLocalDB Connectez-vous au serveur: Utilisez Windows Authentification Appuyez sur "Tester la connexion", puis sur OK.

  9. travail accompli

4
guestDoug

Le moyen le plus rapide dans Visual Studio 2017 consiste à accéder à Outils -> SQL Server -> Nouvelle requête .. Choisissez parmi les bases de données locales et choisissez le nom de la base de données souhaité en bas.

Manière alternative

Le nom du serveur Visual Studio 2017 est:

(localdb)\MSSQLLocalDB

Ajoutez la nouvelle connexion en utilisant le menu Outils -> Se connecter à la base de données ...

3
Samuel

J'ai suivi les étapes ci-dessus, mais j'ai oublié d'installer SQLDOC 2014 LocalDB avant la configuration de Visual Studio 2015.

Mes étapes sont les suivantes:

  1. Installez le SQL Server 2014 LocalDB;
  2. Ouvrez Visual Studio 2015 puis Explorateur d'objets SQL Server;
  3. Trouvez votre LocalDB sous la balise SQL Server.

J'espère que cela aidera quelqu'un.

1
Mondi

Scénario: Windows 8.1, VS2013 Ultimate, SQL Express installé et en cours d'exécution, navigateur SQL Server désactivé. Cela a fonctionné pour moi:

  1. D'abord, j'ai activé SQL Server Browser sous services.
  2. Dans Visual Studio: Ouvrez la console du gestionnaire de packages, puis tapez: Enable-Migrations; Puis tapez Enable-Migrations -ContextTypeName YourContextDbName ayant créé le dossier Migrations dans VS.
  3. Dans le dossier Migrations, vous trouverez le fichier "Configuration.cs", activez les migrations automatiques en: AutomaticMigrationsEnabled = true;
  4. Exécutez votre application à nouveau, l'environnement crée une DefaultConnection et vous verrez les nouvelles tables à partir de votre contexte. Cette nouvelle connexion pointe vers la localdb. La chaîne de connexion créée indique: Source de données = (LocalDb)\v11.0 ... (plus de paramètres et chemin vers le fichier mdf créé)

Vous pouvez maintenant créer une nouvelle connexion avec le nom du serveur: (LocalDb)\v11.0 (actualiser). Se connecter à une base de données: sélectionnez votre nouvelle base de données dans la liste déroulante.

J'espère que ça aide.

0
Armando S