Jak połączyć się z LocalDB w Visual Studio Server Explorer?

240

Nie mogę uwierzyć, że po godzinie poszukiwań nie mogłem znaleźć skutecznego rozwiązania tego problemu. Śledzę ten artykuł na temat Entity Framework 6.0, który zawiera prosty przewodnik po Code First. Stworzyłem projekt i zainstalowałem najnowszy pakiet EF Nuget do kompilacji projektu. Zweryfikowałem również, że mam zainstalowany program Microsoft SQL Server 2012 Express LocalDB dostarczony z programem Visual Studio 2013. Nie mam żadnych innych instancji SQL zainstalowanych na moim komputerze lokalnym. Program działa, a wpisy są dodawane do bazy danych i wysyłane do konsoli. Ale kiedy artykuł mówi „sprawdź localdb”, nie mówi jak! Nie widzę żadnych plików „.mdf” ani „.ldf” utworzonych w folderze projektu. Próbowałem wszystkich sposobów, aby połączyć Visual Studio ” s Server Explorer do LocalDB. Kreator nie może zlokalizować(localdb)lub nie mogę znaleźć żadnego dostawcy w Eksploratorze serwera, który zaakceptowałby parametry połączenia, tak jak (localdb)\v11.0;Integrated Security=true;widziałem to w zapytaniu o kilka miejsc w StackOverflow, ale żadna odpowiedź nie działa lub jest oznaczona jako odpowiedź. Proszę o pomoc, to nie musi być tak frustrujące!

Jakie są kroki, aby połączyć Visual Studio Server Explorer z LocalDB?

orad
źródło
70
Często współczuję ludziom, którzy dopiero rozpoczynają ten biznes. 20 lat temu narzędzia były znacznie łatwiejsze w użyciu. Dokumentacja jest teraz ledwo wystarczająca, aw większości przypadków mniejsza niż. Widzę teraz „dokumentację” w MSDN, która po prostu wyjaśnia metodę, taką jak „foo” -> „To jest metoda foo”. Naprawdę, Microsoft? Co się stało z pisarzami technicznymi? Co stało się z Books Online (naprawdę)?
Pittsburgh DBA,
1
Upewnij się, że korzystasz z programu Visual Studio jako administrator.
Darren Griffith
4
Jeśli nie masz nic przeciwko korzystaniu z Eksploratora obiektów SQL Server w programie Visual Studio zamiast Eksploratora serwera . To prostsze rozwiązanie (mniej ręcznej konfiguracji), sprawdź moją odpowiedź: stackoverflow.com/a/41906391/3645638
Svek
Moja konfiguracja tworzy bazę danych w sqlserverexpress zamiast w localdb. Co to powoduje?
Jason Cheng,

Odpowiedzi:

282

W Visual Studio 2012 wszystko, co musiałem zrobić, to wpisać:

(localdb)\v11.0

Visual Studio 2015 i Visual Studio 2017 zmieniono na:

(localdb)\MSSQLLocalDB

jako nazwa serwera podczas dodawania Microsoft SQL Server Dataźródła w:

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

a następnie nazwy baz danych zostały wypełnione. Nie musiałem wykonywać wszystkich pozostałych kroków w zaakceptowanej odpowiedzi, chociaż byłoby miło, gdyby nazwa serwera była dostępna automatycznie w polu kombi nazwy serwera.

Możesz także przeglądać nazwy baz danych LocalDB dostępne na twoim komputerze, używając:

View/SQL Server Object Explorer.
RationalDev lubi GoFundMonica
źródło
4
Tak, to powinno działać za pierwszym razem. Ale jeśli nie, kroki w zaakceptowanej odpowiedzi powinny uruchomić usługę i sprawić, by działała.
orad
Może SQL Server Object Explorer uruchomił go dla mnie, gdy użyłem go, aby dowiedzieć się, jakiej nazwy serwera użyła Entity Framework. Znalazłem to pytanie, ale trochę się przestraszyłem, próbując znaleźć odpowiedź, ponieważ liczyłem na coś prostszego i nie przeczytałem go w pełni, ponieważ myślałem, że muszę użyć nazwy potoku :)
RationalDev lubi GoFundMonica
Czy jestem po prostu ślepy na szczegóły, czy może to bardzo frustrujące, że konfiguracja tego nie jest bardziej intuicyjna? Niezależnie od tego, czy w 2012, czy w 2015 roku, wygląda na to, że prawie ukrywają takie rzeczy w IDE.
Rex_C
Dziękuję Ci. Waliłem mózgami, aż znalazłem odpowiedź.
Alexandre N.
5
Dlaczego Microsoft, dlaczego? Po co zmieniać nazwę i nie aktualizować dokumentacji? (Dziękujemy za ścieżkę VS 2015)
Thibault D.
256

OK, odpowiadając na moje własne pytanie.

Kroki łączenia LocalDB z Visual Studio Server Explorer

  1. Otwórz wiersz polecenia
  2. Biegać SqlLocalDB.exe start v11.0
  3. Biegać SqlLocalDB.exe info v11.0
  4. Skopiuj nazwę potoku wystąpienia, który zaczyna się od np: \ ...
  5. W Visual Studio wybierz NARZĘDZIA> Połącz z bazą danych ...
  6. W polu Nazwa serwera wpisz (localdb)\v11.0. Jeśli to nie zadziałało, użyj wcześniejszej nazwy potoku wystąpienia . Możesz także użyć tego do połączenia z SQL Management Studio.
  7. Wybierz bazę danych na następnej liście rozwijanej
  8. Kliknij OK

wprowadź opis zdjęcia tutaj

orad
źródło
86
Prawie każda akcja w tych dniach na platformie MS wymaga magii lub wcześniej zapamiętanej wiedzy ... kto wesprze te rzeczy za 5 lat, kiedy będzie dostępny zupełnie nowy zestaw magii?
tbone
34
Dziękuję Ci! Wystarczy dodać do tej doskonałej odpowiedzi (i doskonałego pytania): SqlLocalDb infowyświetli listę wszystkich nazw serwerów. W moim przypadku, po EF Kod pierwszego magii, moja baza danych zakończyła się w MSSQLLocalDBnie v11.0, więc wszedłem (localdb)\MSSQLLocalDBw oknie dialogowym Dodaj połączenie.
biscuit314
1
SqlLocalDb.exe pojawia się dwukrotnie w mojej ścieżce systemowej - najpierw w C: \ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn, a następnie w C: \ Program Files \ Microsoft SQL Server \ 120 \ Tools \ Binn. Dlatego tylko wcześniejsza wersja zostanie kiedykolwiek wywołana! Mam zainstalowane zarówno VS2012, jak i VS 2013.
John Pankowicz
2
Wierzę, że coraz więcej osób podchodzi do innych języków programowania z Microsoft. Ta prosta konfiguracja i lokalizacja plików stała się trudniejsza niż wszystko, czego brakuje w innych językach. Jeśli w ogóle ich brakuje.
JustJohn,
4
Przez całe popołudnie drapałem się po głowie. Dlaczego muszą to komplikować, skoro to było tak cholernie łatwe? Dzięki za pomoc.
George Williams
71

Wybierz w:

  1. Źródło danych: Microsoft SQL Server (SqlClient)
  2. Nazwa serwera: (localdb)\MSSQLLocalDB
  3. Zaloguj się do serwera: Use Windows Authentication

Naciśnij przycisk Odśwież, aby uzyskać nazwę bazy danych :)

Zrzut ekranu

Kaps
źródło
1
jakoś była to jedyna działająca odpowiedź
28.04.2015
4
to samo tutaj vs2015 .. To była odpowiedź .. Chyba zmienili nazwę na localDb?
punkouter
1
Ten zrobił to dla VS2015 RC na Win 8.1.
ScottG
Informacje o nazwie serwera: stackoverflow.com/questions/27197359/…
kr85
Działa również w vs2017.
Toke Breer-Mortensen
25

Zamiast tego użyj SQL Server Object Explorer (SSOX)

W przeciwieństwie do innych odpowiedzi, podejście to wykorzystuje:
- Brak specjalnych poleceń.
- Brak skomplikowanych konfiguracji.
Wystarczy użyć Eksploratora obiektów SQL Server

To całkiem proste ...

  • Z menu Widok otwórz Eksplorator obiektów SQL Server .

jeden

  • Kliknij prawym przyciskiem myszy {YourTableName}tabelę> Wyświetl projektanta

dwa

Gotowe.

Svek
źródło
16

To zadziałało dla mnie.

  1. Otwórz wiersz polecenia
  2. Uruchom „SqlLocalDB.exe start”
  3. Odpowiedź systemu „Wystąpienie LocalDB” mssqllocaldb „uruchomione”.
  4. W VS, View / Server Explorer / (Kliknij prawym przyciskiem) Połączenia danych / Dodaj połączenie
    • Źródło danych: Microsoft SQL Server (SqlClient)
    • Nazwa serwera: (localdb) \ MSSQLLocalDB
    • Zaloguj się do serwera: użyj uwierzytelniania systemu Windows
  5. Naciśnij „Testuj połączenie”, a następnie OK.
Ader Hwang
źródło
8

Następujące działa z Visual Studio 2017 Community Edition na Windows 10 przy użyciu SQLServer Express 2016.

Otwórz PowerShell, sprawdź, jak się nazywa SqlLocalDB.exe infoi czy działa SqlLocalDB.exe info NAME. Oto jak to wygląda na moim komputerze:

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

Jeśli nie działa, musisz go uruchomić SqlLocalDB.exe start MSSQLLocalDB. Po uruchomieniu zobaczysz, Instance pipe name:który zaczyna się od np:\\. Skopiuj nazwany ciąg rurowy. W VS2017 otwórz widok Server Exploreri utwórz nowe połączenie typu Microsoft SQL Server (SqlClient)(nie daj się zwieść innym typom plików, dla których chcesz mieć pełny typ połączenia) i ustaw Server name:nazwę instancji potoku skopiowanej z PowerShell.

Connect to databaseUstawiłem również tę samą bazę danych, która znajdowała się w ciągu połączenia działającym w moim projekcie Dotnet Core / Entity Framework Core, który został skonfigurowany za pomocą dotnet ef database update.

Możesz zalogować się i utworzyć bazę danych, używając sqlcmdi nazwanego ciągu rur:

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

Instrukcje dotyczące tworzenia użytkownika aplikacji znajdują się na stronie https://docs.microsoft.com/en-us/sql/tools/sqllocaldb-utility

simbo1905
źródło
7

Visual Studio 2015 RC, ma zainstalowany LocalDb 12, instrukcje podobne do wcześniejszych, ale nadal nie powinno się wymagać znajomości „magii”, zanim ręcznie z niej skorzystasz, domyślna instancja powinna być włączona ... Rant complete, nie dla rozwiązania :

cmd> sqllocaldb start

Który wyświetli się

LocalDB instance "MSSQLLocalDB" started.

Twój przykład nazwa może się różnić. W obu przypadkach przejdź do VS i otwórz Eksploratora serwera, kliknij prawym przyciskiem myszy Połączenia danych, wybierz Dodaj, wybierz SQL Server, w typie nazwy serwera:

(localdb)\MSSQLLocalDB

Bez wpisywania nazwy DB kliknij „Testuj połączenie”.

OzBob
źródło
6

Poprawka nie działa.

Dokładnie tak, jak na przykładowej ilustracji, wszystkie te kroki zapewniają dostęp tylko do „systemowych” baz danych i nie ma opcji wyboru istniejących baz danych użytkowników, do których chcesz uzyskać dostęp.

Rozwiązanie umożliwiające dostęp do lokalnej (nie Express Edition) instancji serwera Microsoft SQL znajduje się po stronie SQL Server:

  1. Otwórz okno dialogowe Uruchom (WinKey + R)
  2. Wpisz: „services.msc”
  3. Wybierz SQL Server Browser
  4. Kliknij Właściwości
  5. Zmień „wyłączone” na „Ręcznie” lub „Automatycznie”
  6. Gdy przycisk usługi „Start” zostanie włączony, kliknij go.

Gotowe! Teraz możesz wybrać lokalnego programu SQL Server z listy Nazwa serwera we Właściwościach połączenia.

alejandrob
źródło
7
Ten StackOverflow Q / A dotyczy LocalDB . Myślę, że twoja odpowiedź dotyczy włączenia innych instancji SQL.
orad
Próbowałem tę poprawkę w środowisku lokalnym i robi FIX jak oczekiwano na oryginalne pytanie pisał, co nie można pomyśleć , że tak. Nie zakładaj, że Enterprise Edition = środowisko Enterprise. Niektórzy z nas używają tego wydania do rozwoju lokalnego na komputerze grupy roboczej.
alejandrob
Mimo że nadal musiałem wchodzić (localdb) zamiast korzystać z przeglądarki, tak naprawdę naprawiłem to, więc ładnie odpowiada na pytanie.
PeterJ
4

Uruchom CMD jako administrator.

  1. z menu Start „cmd” - poczekaj, aż go znajdzie.
  2. Kliknij cmd prawym przyciskiem myszy i wybierz otwórz jako administrator
  3. wpisz: cd C: \ Program Files \ Microsoft SQL Server \ 120 \ Tools \ Binn
  4. wpisz: SqlLocalDB start
  5. teraz wpisz: SqlLocalDB info
  6. Pokazuje dostępne instancje sql dostępne ... wybierz, co chcesz ...
  7. aby dowiedzieć się więcej o typie instancji: SqlLocalDB info nazwa_instancji

  8. teraz z VS możesz skonfigurować połączenie W VS, View / Server Explorer / (Kliknij prawym przyciskiem) Połączenia danych / Dodaj połączenie Źródło danych: Microsoft SQL Server (SqlClient) Nazwa serwera: (localdb) \ MSSQLLocalDB Zaloguj się do serwera: Użyj Windows Uwierzytelnianie Naciśnij „Testuj połączenie”, a następnie OK.

  9. Zadanie wykonane

guestDoug
źródło
3

Najszybszym sposobem w Visual Studio 2017 jest przejście do Narzędzia -> SQL Server -> Nowe zapytanie. Wybierz z lokalnych baz danych i wybierz żądaną nazwę bazy danych na dole.

Alternatywny sposób

Nazwa programu Visual Studio 2017 Server to:

(localdb)\MSSQLLocalDB

Dodaj nowe połączenie za pomocą menu Narzędzia -> Połącz z bazą danych ...

Samuel
źródło
Jeśli nie zainstalowałeś SQLExpress w domyślnej instancji, możesz także spróbować ... '(localdb)'
Jason Geiger
1

Postępowałem zgodnie z powyższymi instrukcjami, ale zapomniałem zainstalować LocalDB programu SQL Server 2014 przed konfiguracją programu Visual Studio 2015.

Moje kroki są następujące:

  1. Zainstaluj SQL Server 2014 LocalDB;
  2. Otwórz Visual Studio 2015, a następnie SQL Server Object Explorer ;
  3. Znajdź swój LocalDB pod znacznikiem SQL Server.

Mam nadzieję, że pomoże to każdemu.

Mondi
źródło
0

Scenariusz: Windows 8.1, VS2013 Ultimate, SQL Express zainstalowany i uruchomiony, przeglądarka SQL Server wyłączona. To działało dla mnie:

  1. Najpierw włączyłem SQL Server Browser w ramach usług.
  2. W Visual Studio: Otwórz konsolę Menedżera pakietów, a następnie wpisz: Enable-Migrations ; Następnie wpisz Enable-Migrations -ContextTypeName YourContextDbName, który utworzył folder Migracje w VS.
  3. W folderze Migracje znajduje się plik „Configuration.cs”, włącz automatyczne migracje przez: AutomaticMigrationsEnabled = true;
  4. Uruchom aplikację ponownie, środowisko tworzy DefaultConnection i zobaczysz nowe tabele z kontekstu. To nowe połączenie wskazuje na localdb. Utworzony ciąg połączenia pokazuje: Źródło danych = (LocalDb) \ v11.0 ... (więcej parametrów i ścieżka do utworzonego pliku mdf)

Możesz teraz utworzyć nowe połączenie z nazwą serwera: (LocalDb) \ v11.0 (hit odśwież) Połącz się z bazą danych: wybierz nową bazę danych z menu rozwijanego.

Mam nadzieję, że to pomoże.

Armando S.
źródło
-1

Korzystałem z SQL Server 2017 i Visual Studio 2015 localhost\SQLEXPRESS

wprowadź opis zdjęcia tutaj

Ben S.
źródło