Wie stelle ich im Visual Studio Server Explorer eine Verbindung zu LocalDB her?

240

Ich kann nicht glauben, dass ich nach einer Stunde Suche keine funktionierende Lösung dafür finden konnte. Ich folge diesem Artikel zu Entity Framework 6.0, der einen einfachen Überblick über Code First bietet. Ich habe das Projekt erstellt und das neueste EF Nuget-Paket installiert , damit das Projekt kompiliert werden kann. Ich habe außerdem überprüft, ob Microsoft SQL Server 2012 Express LocalDB installiert ist, das mit Visual Studio 2013 geliefert wurde. Auf meinem lokalen Computer sind keine anderen SQL-Instanzen installiert. Das Programm wird ausgeführt und Einträge werden zur Datenbank hinzugefügt und in der Konsole ausgegeben. Aber wenn der Artikel "check your localdb" sagt, sagt er nicht wie! Ich sehe keine .mdf- oder .ldf-Dateien, die im Projektordner erstellt wurden. Ich habe alle Möglichkeiten ausprobiert, um Visual Studio zu verbinden. s Server Explorer zu LocalDB. Der Assistent kann nicht finden(localdb)oder kann im Server-Explorer keinen Anbieter finden, der eine Verbindungszeichenfolge akzeptiert, wie (localdb)\v11.0;Integrated Security=true;ich gesehen habe, dass dies an mehreren Stellen in StackOverflow gefragt wurde, aber keine Antwort funktioniert oder als Antwort markiert ist. Bitte helfen Sie, das muss nicht so frustrierend sein!

Was sind die Schritte, um Visual Studio Server Explorer mit LocalDB zu verbinden?

orad
quelle
70
Ich habe oft Mitleid mit Leuten, die gerade in dieses Geschäft einsteigen. Vor 20 Jahren waren die Werkzeuge tatsächlich viel einfacher zu bedienen. Die Dokumentation ist jetzt auch kaum noch ausreichend und in den meisten Fällen weniger als. Ich sehe jetzt "Dokumentation" auf MSDN, die einfach eine Methode erklärt, wie "foo" -> "Dies ist die foo-Methode." Wirklich, Microsoft? Was ist mit den technischen Redakteuren passiert? Was ist mit Books Online passiert (wirklich)?
Pittsburgh DBA
1
Stellen Sie sicher, dass Sie Visual Studio als Administrator ausführen.
Darren Griffith
4
Wenn Sie mit der Verwendung des SQL Server-Objekt-Explorers von Visual Studio anstelle des Server-Explorers einverstanden sind . Es ist eine einfachere Lösung (weniger manuelle Konfiguration), überprüfen Sie meine Antwort: stackoverflow.com/a/41906391/3645638
Svek
Mein Setup erstellt die Datenbank in sqlserverexpress und nicht in localdb. Was verursacht das?
Jason Cheng

Antworten:

282

In Visual Studio 2012 musste ich nur Folgendes eingeben:

(localdb)\v11.0

Visual Studio 2015 und Visual Studio 2017 wurden geändert in:

(localdb)\MSSQLLocalDB

als Servername beim Hinzufügen einer Microsoft SQL Server DataQuelle in:

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

und dann wurden die Datenbanknamen ausgefüllt. Ich musste nicht alle anderen Schritte in der akzeptierten Antwort ausführen, obwohl es schön wäre, wenn der Servername automatisch im Kombinationsfeld Servername verfügbar wäre.

Sie können auch die auf Ihrem Computer verfügbaren LocalDB-Datenbanknamen durchsuchen, indem Sie Folgendes verwenden:

View/SQL Server Object Explorer.
RationalDev mag GoFundMonica
quelle
4
Ja, das soll beim ersten Mal funktionieren. Wenn dies nicht der Fall ist, sollten die Schritte in der akzeptierten Antwort den Dienst starten und zum Funktionieren bringen.
Orad
Vielleicht hat SQL Server Object Explorer es für mich gestartet, als ich es verwendet habe, um herauszufinden, welchen Servernamen Entity Framework verwendet hat. Ich hatte diese Frage gefunden, hatte aber Angst davor, die Antwort zu versuchen, da ich auf etwas Einfacheres hoffte und sie nicht vollständig gelesen hatte, da ich dachte, ich
müsste
Bin ich nur blind für die Details oder ist es äußerst frustrierend, dass das Einrichten nicht intuitiver ist? Ob 2012 oder 2015, es scheint, als ob sie solche Dinge in der gesamten IDE fast verstecken.
Rex_C
Danke. Ich habe mir den Kopf zerbrochen, bis ich deine Antwort herausgefunden habe.
Alexandre N.
5
Warum Microsoft, warum? Warum den Namen ändern und Ihre Dokumentation nicht aktualisieren? (Vielen Dank für den VS 2015 Pfad)
Thibault D.
256

OK, ich beantworte meine eigene Frage.

Schritte zum Verbinden von LocalDB mit Visual Studio Server Explorer

  1. Öffnen Sie die Eingabeaufforderung
  2. Lauf SqlLocalDB.exe start v11.0
  3. Lauf SqlLocalDB.exe info v11.0
  4. Kopieren Sie den Namen der Instanzpipe, der mit np beginnt: \ ...
  5. Wählen Sie in Visual Studio TOOLS> Mit Datenbank verbinden ...
  6. Geben Sie als Servername ein (localdb)\v11.0. Wenn es nicht funktioniert hat, verwenden Sie den zuvor kopierten Instanz-Pipe-Namen . Sie können dies auch verwenden, um eine Verbindung mit SQL Management Studio herzustellen.
  7. Wählen Sie die Datenbank in der nächsten Dropdown-Liste aus
  8. OK klicken

Geben Sie hier die Bildbeschreibung ein

orad
quelle
86
Fast jede Aktion heutzutage auf der MS-Plattform beinhaltet etwas Magie oder vorher auswendig gelerntes Wissen. Wer wird diese Dinge in 5 Jahren unterstützen, wenn eine ganz neue Reihe von Magie vorhanden ist?
Knochen
34
Danke dir! Nur um diese ausgezeichnete Antwort (und ausgezeichnete Frage) zu ergänzen: SqlLocalDb infolistet alle Servernamen auf. In meinem Fall endete meine Datenbank nach der EF-Code-First-Magie MSSQLLocalDBnicht v11.0, sodass ich (localdb)\MSSQLLocalDBin das Dialogfeld Verbindung hinzufügen eintrat .
Biscuit314
1
SqlLocalDb.exe wird zweimal in meinem Systempfad angezeigt - zuerst in C: \ Programme \ Microsoft SQL Server \ 110 \ Tools \ Binn und dann in C: \ Programme \ Microsoft SQL Server \ 120 \ Tools \ Binn. Daher wird immer nur die frühere Version aufgerufen! Ich habe sowohl VS2012 als auch VS 2013 installiert.
John Pankowicz
2
Ich glaube, dass immer mehr Leute sich für andere Programmiersprachen von Microsoft interessieren. Diese einfachen Konfigurations- und Dateispeicherorte sind schwieriger geworden als alles, was den anderen Sprachen fehlt. Wenn es ihnen überhaupt fehlt.
JustJohn
4
Ich habe mir den ganzen Nachmittag über den Kopf gekratzt. Warum müssen sie es so kompliziert machen, wenn es früher so einfach war? Danke für die Hilfe.
George Williams
71

Wählen Sie in:

  1. Datenquelle: Microsoft SQL Server (SqlClient)
  2. Servername: (localdb)\MSSQLLocalDB
  3. Melden Sie sich am Server an: Use Windows Authentication

Klicken Sie auf die Schaltfläche Aktualisieren, um den Datenbanknamen abzurufen :)

Bildschirmfoto

Kaps
quelle
1
Irgendwie war es die einzige funktionierende Antwort am 28.04.2015
Maazza
4
das gleiche hier vs2015 .. Dies war die Antwort .. Ich denke, sie haben localDb umbenannt?
Punkouter
1
Dieser hat es für VS2015 RC unter Win 8.1 gemacht.
ScottG
Über den Servernamen: stackoverflow.com/questions/27197359/…
kr85
Funktioniert auch in vs2017.
Toke Breer-Mortensen
25

Verwenden Sie stattdessen SQL Server Object Explorer (SSOX)

Im Gegensatz zu den anderen Antworten verwendet dieser Ansatz:
- Keine speziellen Befehle.
- Keine komplizierten Konfigurationen.
Verwenden Sie einfach den SQL Server-Objekt-Explorer

Es ist ziemlich einfach ...

  • Öffnen Sie im Menü Ansicht den SQL Server-Objekt-Explorer .

einer

  • Klicken Sie mit der rechten Maustaste auf die {YourTableName}Tabelle> Designer anzeigen

zwei

Getan.

Svek
quelle
16

Es hat bei mir funktioniert.

  1. Öffnen Sie die Eingabeaufforderung
  2. Führen Sie "SqlLocalDB.exe start" aus
  3. Systemantwort "LocalDB-Instanz" mssqllocaldb "gestartet".
  4. In VS , Ansicht / Server Explorer / (Rechtsklick) Datenverbindungen / Verbindung hinzufügen
    • Datenquelle: Microsoft SQL Server (SqlClient)
    • Servername: (localdb) \ MSSQLLocalDB
    • Melden Sie sich am Server an: Verwenden Sie die Windows-Authentifizierung
  5. Drücken Sie "Verbindung testen" und dann auf OK.
Ader Hwang
quelle
8

Das Folgende funktioniert mit Visual Studio 2017 Community Edition unter Windows 10 unter Verwendung von SQLServer Express 2016.

Öffnen Sie eine PowerShell und überprüfen Sie, wie sie aufgerufen wird SqlLocalDB.exe infound ob sie ausgeführt wird SqlLocalDB.exe info NAME. So sieht es auf meinem Computer aus:

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

Wenn es nicht läuft, müssen Sie es mit starten SqlLocalDB.exe start MSSQLLocalDB. Wenn es läuft, sehen Sie das, Instance pipe name:was mit beginnt np:\\. Kopieren Sie die benannte Pipe-Zeichenfolge. Öffnen Sie in VS2017 die Ansicht Server Explorerund erstellen Sie eine neue Verbindung vom Typ Microsoft SQL Server (SqlClient)(lassen Sie sich nicht von den anderen Dateitypen täuschen, für die Sie den Vollfett-Verbindungstyp wünschen) und legen Sie die festServer name: Namen für die Instanzpipe fest, die Sie aus PowerShell kopiert haben.

Ich habe außerdem festgelegt Connect to database, dass es sich um dieselbe Datenbank handelt, die sich in der Verbindungszeichenfolge befindet, die in meinem Dotnet Core / Entity Framework Core-Projekt funktioniert hat, das mit eingerichtet wurdedotnet ef database update .

Sie können sich anmelden und eine Datenbank mit der sqlcmdund der genannten Pipe-Zeichenfolge erstellen :

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

Anweisungen zum Erstellen eines Benutzers für Ihre Anwendung finden Sie unter https://docs.microsoft.com/en-us/sql/tools/sqllocaldb-utility

simbo1905
quelle
7

In Visual Studio 2015 RC ist LocalDb 12 installiert, ähnliche Anweisungen wie zuvor, aber es sollte immer noch nicht erforderlich sein, 'magic' zu kennen. Bevor dies verwendet werden kann, sollte die Standardinstanz aktiviert sein ... Rant complete, no for solution ::

cmd> sqllocaldb start

Welches wird angezeigt

LocalDB instance "MSSQLLocalDB" started.

Ihr Instanzname kann abweichen. Wechseln Sie in beiden Fällen zu VS und öffnen Sie den Server-Explorer. Klicken Sie mit der rechten Maustaste auf Datenverbindungen, wählen Sie Hinzufügen und wählen Sie SQL Server im Servernamen-Typ:

(localdb)\MSSQLLocalDB

Klicken Sie auf "Verbindung testen", ohne einen DB-Namen einzugeben.

OzBob
quelle
6

Fix funktioniert nicht.

Genau wie in der Beispielabbildung bieten alle diese Schritte nur Zugriff auf "System" -Datenbanken und keine Option zum Auswählen vorhandener Benutzerdatenbanken, auf die Sie zugreifen möchten.

Die Lösung für den Zugriff auf eine lokale (nicht Express Edition) Microsoft SQL Server-Instanz befindet sich auf der SQL Server-Seite:

  1. Öffnen Sie den Dialog Ausführen (WinKey + R)
  2. Typ: "services.msc"
  3. Wählen Sie SQL Server Browser
  4. Klicken Sie auf Eigenschaften
  5. Ändern Sie "deaktiviert" in "Manuell" oder "Automatisch".
  6. Wenn die Schaltfläche "Start" aktiviert wird, klicken Sie darauf.

Getan! Jetzt können Sie Ihren lokalen SQL Server aus der Liste Servername in den Verbindungseigenschaften auswählen.

Alejandrob
quelle
7
In dieser StackOverflow-Frage / Antwort geht es um LocalDB . Ich denke, Ihre Antwort besteht darin, andere Instanzen von SQL zu aktivieren.
Orad
Ich habe dieses Update in der lokalen Umgebung versucht und es führt das FIX wie erwartet für die ursprünglich gestellte Frage aus, nicht das, was Sie vielleicht denken . Gehen Sie nicht davon aus, dass Enterprise Edition = Enterprise-Umgebung. Einige von uns verwenden diese Edition für die lokale Entwicklung auf einem Arbeitsgruppencomputer.
Alejandrob
Obwohl ich immer noch (localdb) eingeben musste, anstatt den Browser zu verwenden, wurde dies für mich behoben, sodass die Frage gut beantwortet werden kann.
PeterJ
4

Führen Sie das CMD als Administrator aus.

  1. vom Startmenü 'cmd' - warten Sie, bis es gefunden wird.
  2. Klicken Sie mit der rechten Maustaste auf cmd und wählen Sie Als Administrator öffnen
  3. Geben Sie Folgendes ein: cd C: \ Programme \ Microsoft SQL Server \ 120 \ Tools \ Binn
  4. Typ: SqlLocalDB Start
  5. Geben Sie jetzt Folgendes ein: SqlLocalDB info
  6. Zeigt die laufenden verfügbaren SQL-Instanzen an. Wählen Sie aus, was Sie möchten.
  7. Weitere Informationen zum Instanztyp finden Sie unter: SqlLocalDB info instanceName

  8. Jetzt können Sie über VS Ihre Verbindung einrichten. In VS , Ansicht / Server-Explorer / (Rechtsklick) Datenverbindungen / Verbindungsdaten hinzufügen Quelle: Microsoft SQL Server (SqlClient) Servername: (localdb) \ MSSQLLocalDB Melden Sie sich am Server an: Verwenden Sie Windows Authentifizierung Drücken Sie "Verbindung testen" und dann auf OK.

  9. Job erledigt

guestDoug
quelle
3

Der schnellste Weg in Visual Studio 2017 ist, zu Extras -> SQL Server -> Neue Abfrage zu wechseln. Wählen Sie aus lokalen Datenbanken und wählen Sie unten den gewünschten Datenbanknamen aus.

Alternativer Weg

Der Name des Visual Studio 2017-Servers lautet:

(localdb)\MSSQLLocalDB

Fügen Sie die neue Verbindung über das Menü Extras -> Mit Datenbank verbinden ... hinzu.

Samuel
quelle
Wenn Sie SQLExpress nicht auf einer Standardinstanz installiert haben, können Sie auch versuchen ... '(localdb)'
Jason Geiger
1

Ich habe die obigen Schritte ausgeführt, aber vergessen, die SQL Server 2014 LocalDB vor der Visual Studio 2015-Konfiguration zu installieren.

Meine Schritte sind wie folgt:

  1. Installieren Sie die SQL Server 2014 LocalDB.
  2. Öffnen Sie Visual Studio 2015 und dann SQL Server Object Explorer .
  3. Suchen Sie Ihre LocalDB unter dem SQL Server-Tag.

Hoffe das hilft jemandem.

Mondi
quelle
0

Szenario: Windows 8.1, VS2013 Ultimate, SQL Express installiert und ausgeführt, SQL Server-Browser deaktiviert. Das hat bei mir funktioniert:

  1. Zuerst habe ich den SQL Server Browser unter Dienste aktiviert.
  2. In Visual Studio: Öffnen Sie die Package Manager-Konsole und geben Sie Folgendes ein : Enable-Migrations ; Geben Sie dann Enable-Migrations -ContextTypeName YourContextDbName ein , mit dem der Migrationsordner in VS erstellt wurde.
  3. Im Ordner "Migrationen" finden Sie die Datei "Configuration.cs". Aktivieren Sie die automatischen Migrationen durch: AutomaticMigrationsEnabled = true;
  4. Führen Sie Ihre Anwendung erneut aus, die Umgebung erstellt eine DefaultConnection und Sie sehen die neuen Tabellen aus Ihrem Kontext. Diese neue Verbindung zeigt auf den Localdb. Die erstellte Verbindungszeichenfolge zeigt: Datenquelle = (LocalDb) \ v11.0 ... (weitere Parameter und Pfad zur erstellten MDF-Datei)

Sie können jetzt eine neue Verbindung mit dem Servernamen erstellen: (LocalDb) \ v11.0 (auf Aktualisieren klicken) Mit einer Datenbank verbinden: Wählen Sie Ihre neue Datenbank in der Dropdown-Liste aus.

Ich hoffe, es hilft.

Armando S.
quelle
-1

Mit SQL Server 2017 und Visual Studio 2015 habe ich verwendet localhost\SQLEXPRESS

Geben Sie hier die Bildbeschreibung ein

Ben S.
quelle