Як підключитися до LocalDB в провіднику Visual Studio Server?


240

Я не можу повірити, що не зміг знайти робоче рішення для цього після години пошуку. Я слідую за цією статтею про Entity Framework 6.0, яка дає просте ознайомлення з Code First. Я створив проект і встановив останній пакет EF Nuget для компіляції проекту. Я також переконався, що у мене встановлено Microsoft SQL Server 2012 Express LocalDB, який постачався разом з Visual Studio 2013. У мене на локальному комп’ютері не встановлено інших примірників SQL. Запуск програми та записи додаються до бази даних та виводяться на консоль. Але коли в статті йдеться "перевірити свій localdb", воно не говорить як! Я не бачу жодних файлів '.mdf' або '.ldf', створених у папці проекту. Я намагався всім способом підключити Visual Studio ' s Провідник сервера до LocalDB. Майстер не може знайти(localdb)або не вдається знайти будь-якого постачальника в Провідниках Сервера, щоб прийняти рядок з'єднання, як (localdb)\v11.0;Integrated Security=true;я бачив, про це запитували кілька місць у StackOverflow, але жодна відповідь не працює і не позначена як відповідь. Будь ласка, допоможіть, це не повинно бути таким розчарувальним!

Які кроки підключити провідник Visual Studio Server до LocalDB?


70
Я часто шкодую людей, які тільки вступають у цю справу. 20 років тому інструменти насправді були набагато простішими у використанні. Документація також зараз майже не є достатньою, а в більшості випадків - менше. Зараз я бачу "документацію" на MSDN, яка просто пояснює метод, наприклад "foo" -> "Це метод foo." Дійсно, Microsoft? Що сталося з технічними письменниками? Що сталося з Книгами Інтернет (реально)?
Пітсбург DBA

1
Переконайтеся, що ви використовуєте Visual Studio як адміністратор.
Даррен Гріффіт

4
Якщо ви добре не використовуєте Провідник об’єктів SQL Server Visual Studio замість Провідника сервера . Це просте рішення (менше ручної настройки), перевірте моя відповідь: stackoverflow.com/a/41906391/3645638
Svek

Моя установка створює базу даних у sqlserverexpress, а не у localdb. Що це викликає?
Джейсон Ченг

Відповіді:


282

У Visual Studio 2012 все, що я повинен був зробити:

(localdb)\v11.0

Visual Studio 2015 та Visual Studio 2017 змінено на:

(localdb)\MSSQLLocalDB

як ім'я сервера при додаванні Microsoft SQL Server Dataджерела в:

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

а потім імена баз даних були заповнені. Не потрібно було робити всіх інших кроків у прийнятій відповіді, хоча було б непогано, якби ім'я сервера було доступне автоматично у вікні списку імен сервера.

Ви також можете переглядати назви бази даних LocalDB, доступні на вашому пристрої, використовуючи:

View/SQL Server Object Explorer.

4
Так, саме це повинно працювати вперше. Але якщо цього не сталося, кроки у прийнятій відповіді повинні запустити службу та змусити її працювати.
орад

Можливо, SQL Server Object Explorer запустив його для мене, коли я використовував його, щоб дізнатися, що використовувало ім’я сервера Entity Framework. Я знайшов це питання, але злякався, намагаючись відповісти, тому що я сподівався на щось простіше, і не до кінця прочитав його, як я вважав, що маю використовувати назву труби :)
RationalDev любить GoFundMonica

Я просто сліпий до деталей, або мені дуже страшно, що налаштування цього не є більш інтуїтивно зрозумілим? Будь у 2012 чи 2015 роках, схоже, вони майже приховують подібні речі в усьому IDE.
Rex_C

спасибі. Я ламав мізки, поки не дізнався вашої відповіді.
Олександр Н.

5
Чому Microsoft, чому? Чому слід змінювати ім’я та не оновлювати свою документацію? (Дякую за шлях VS 2015)
Тібо Д.

256

Гаразд, відповідаючи на моє власне запитання.

Етапи підключення LocalDB до провідника Visual Studio Server

  1. Відкрити командний рядок
  2. Біжи SqlLocalDB.exe start v11.0
  3. Біжи SqlLocalDB.exe info v11.0
  4. Скопіюйте ім'я труби Instance, яке починається з np: \ ...
  5. У Visual Studio виберіть TOOLS> Connect to Database ...
  6. Для імені сервера введіть (localdb)\v11.0. Якщо це не спрацювало, використовуйте ім'я труби Instance, яке ви скопіювали раніше. Ви також можете використовувати це для з'єднання з SQL Management Studio.
  7. Виберіть базу даних у наступному випадаючому списку
  8. Натисніть кнопку ОК

введіть тут опис зображення


86
Майже кожна дія в наші дні на платформі MS передбачає якусь магію чи попередньо запам’ятовані знання… хто підтримає ці речі через 5 років, коли буде створений цілий новий набір магії?
tbone

34
Дякую! Просто додати до цієї чудової відповіді (і відмінне запитання): SqlLocalDb infoбуде вказано всі назви серверів. У моєму випадку після першої магії коду EF моя база даних виявилась MSSQLLocalDBне v11.0, тому я ввійшов (localdb)\MSSQLLocalDBу діалогове вікно Додати з'єднання.
бісквіт314

1
SqlLocalDb.exe з'являється двічі на моєму системному шляху - спочатку в C: \ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn, а потім у C: \ Program Files \ Microsoft SQL Server \ 120 \ Tools \ Binn. Тому колись називатимуться лише попередня версія! У мене встановлено і VS2012, і VS 2013.
Джон Панкович

2
Я вважаю, що все більше людей тяжіють до інших мов програмування з матеріалів Microsoft. Цей простий матеріал для конфігурації та розташування файлів став складнішим за будь-які інші мови. Якщо їх взагалі бракує.
JustJohn

4
Я цілий день дряпаю голову над цим. Чому вони повинні зробити це таким складним, коли раніше було так криваво легко? Дякую за допомогу.
Джордж Вільямс

71

Виберіть у:

  1. Джерело даних: Microsoft SQL Server (SqlClient)
  2. Ім'я сервера: (localdb)\MSSQLLocalDB
  3. Увійдіть на сервер: Use Windows Authentication

Натисніть кнопку Оновити, щоб отримати ім'я бази даних :)

Знімок екрана


1
якось це була єдина робоча відповідь 28.04.2015
maazza

4
те саме тут vs2015 .. Це була відповідь .. Я думаю, що вони перейменовані в localDb?
пунктур

1
Цей зробив це для VS2015 RC на Win 8.1.
Скотг

Про назву сервера: stackoverflow.com/questions/27197359 / ...
kr85

Працює і в 2017 році.
Токе Бреер-Мортенсен

25

Замість цього використовуйте SQL Server Object Explorer (SSOX)

На відміну від інших відповідей, цей підхід використовує:
- Немає спеціальних команд.
- Немає складних конфігурацій.
Просто використовуйте Провідник об’єктів SQL Server

Це досить просто ...

  • У меню Вид відкрийте Провідник об’єктів SQL Server .

один

  • Клацніть правою кнопкою миші на {YourTableName}таблиці> Переглянути конструктор

два

Зроблено.


16

Це працювало для мене.

  1. Відкрити командний рядок
  2. Запустіть "запуск SqlLocalDB.exe"
  3. Відповідь системи "LocalDB екземпляр" mssqllocaldb "запущений."
  4. У VS , Перегляд / Провідник сервера / (Клацніть правою кнопкою миші) Підключення даних / Додати з'єднання
    • Джерело даних: Microsoft SQL Server (SqlClient)
    • Ім'я сервера: (localdb) \ MSSQLLocalDB
    • Увійдіть на сервер: використовуйте автентифікацію Windows
  5. Натисніть "Тест з'єднання", а потім ОК.

8

Далі працює з Visual Studio 2017 Community Edition на Windows 10 за допомогою SQLServer Express 2016.

Відкрийте PowerShell і перевірте, як воно називається, SqlLocalDB.exe infoі чи працює він SqlLocalDB.exe info NAME. Ось як це виглядає на моїй машині:

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

Якщо він не працює, вам потрібно його почати SqlLocalDB.exe start MSSQLLocalDB. Коли він працює, ви бачите, з Instance pipe name:чого починається np:\\. Скопіюйте рядок труби з назвою. У межах VS2017 відкрийте представлення даних Server Explorerта створіть нове з'єднання типу Microsoft SQL Server (SqlClient)(не обманюйте інші типи файлів, для яких потрібно повний тип з'єднання жиру) та встановіть Server name:ім'я труби екземпляра, яке ви скопіювали з PowerShell.

Я також встановив, що Connect to databaseце та сама база даних, яка була в рядку з'єднання, яка працювала в моєму проекті Dotnet Core / Entity Framework Core, який був створений за допомогою dotnet ef database update.

Ви можете увійти та створити базу даних, використовуючи sqlcmdі названу трубну рядок:

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

На сторінці https://docs.microsoft.com/en-us/sql/tools/sqllocaldb-utility є інструкції щодо створення користувача для вашої програми.


7

У Visual Studio 2015 RC встановлено LocalDb 12, подібні інструкції до цього, але все-таки не слід вимагати знань "магія", перш ніж це використовувати, екземпляр за замовчуванням повинен був бути включений ... Ранг завершений, немає рішення :

cmd> sqllocaldb start

Яке відобразиться

LocalDB instance "MSSQLLocalDB" started.

Назва вашого примірника може відрізнятися. У будь-якому випадку перейдіть до VS та відкрийте Провідник сервера, клацніть правою кнопкою миші З'єднання даних, виберіть Додати, виберіть SQL Server у типі імені сервера:

(localdb)\MSSQLLocalDB

Не вводячи ім'я БД, натисніть «Тест з'єднання».


6

Виправлення не працює.

Точно так, як на прикладі ілюстрації, усі ці кроки забезпечують лише доступ до "системних" баз даних, і немає можливості вибору існуючих баз даних користувачів, до яких ви хочете отримати доступ.

Рішення для доступу до локального (не Express Edition) екземпляра сервера Microsoft SQL знаходиться на стороні SQL Server:

  1. Відкрийте діалогове вікно Запуск (WinKey + R)
  2. Тип: "services.msc"
  3. Виберіть браузер SQL Server
  4. Клацніть Властивості
  5. Змініть "відключено" на "Ручне" або "Автоматичне"
  6. Коли кнопка служби "Пуск" стане доступною, натисніть на неї.

Готово! Тепер ви можете обрати локальний SQL-сервер зі списку Імена сервера у Властивості підключення.


7
Цей StackOverflow Q / A стосується LocalDB . Я думаю, що ваша відповідь стосується включення інших екземплярів SQL.
орад

Я спробував це виправлення в локальному середовищі, і він робить виправлення, як очікувалося, для оригіналу поставленого питання, а не того, що ви можете подумати, що це робить. Не припускайте, що Enterprise Edition = корпоративне середовище. Деякі з нас використовують це видання для місцевого розвитку на машині робочої групи.
alejandrob

Навіть незважаючи на те, що мені все-таки довелося вводити (localdb), а не використовувати браузер, це фактично виправило це для мене, тож це чудово відповідає на питання.
PeterJ

4

Запустіть CMD як адміністратор.

  1. з меню запуску 'cmd' - дочекайтеся його пошуку.
  2. Клацніть правою кнопкою миші на cmd та виберіть "Відкрити" як адміністратор
  3. тип: cd C: \ програмні файли \ Microsoft SQL Server \ 120 \ Tools \ Binn
  4. тип: запуск SqlLocalDB
  5. тепер введіть: інформацію про SqlLocalDB
  6. Показує наявні запущені екземпляри sql ... виберіть те, що ви хочете ...
  7. щоб дізнатися більше про тип екземпляра: SqlLocalDB info instanceName

  8. тепер із VS ви можете налаштувати підключення У VS , Перегляд / Провідник сервера / (Клацніть правою кнопкою миші) Підключення даних / Додати джерело даних про з'єднання: Microsoft SQL Server (SqlClient) Ім'я сервера: (localdb) \ MSSQLLocalDB Увійдіть на сервер: Використовуйте Windows Аутентифікація Натисніть "Тест з'єднання", потім ОК.

  9. робота виконана


3

Найшвидший спосіб у Visual Studio 2017 - це перейти до Інструменти -> SQL Server -> Новий запит .. Виберіть з локальних баз даних і виберіть потрібне ім'я бази даних внизу.

Альтернативний спосіб

Ім'я сервера Visual Studio 2017:

(localdb)\MSSQLLocalDB

Додайте нове з'єднання за допомогою меню Інструменти -> Підключення до бази даних ...


Якщо ви не встановили SQLExpress до примірника за замовчуванням, ви також можете спробувати ... '(localdb)'
Jason Geiger

1

Я дотримувався вищезазначених кроків, але забув встановити SQL Server 2014 LocalDB перед конфігурацією Visual Studio 2015.

Мої кроки такі:

  1. Встановити LocalDB SQL Server 2014;
  2. Відкрийте Visual Studio 2015, а потім SQL Server Object Explorer ;
  3. Знайдіть LocalDB під тегом SQL Server.

Сподіваюся, це допоможе комусь.


0

Сценарій: Windows 8.1, VS2013 Ultimate, встановлений і запущений SQL Express, браузер SQL Server вимкнено. Це працювало для мене:

  1. Спочатку я включив браузер SQL Server під сервіси.
  2. У Visual Studio: Відкрийте консоль диспетчера пакунків, а потім наберіть: Enable-Migrations ; Потім введіть Enable-Migrations -ContextTypeName YourContextDbName, який створив папку Migrations у VS.
  3. Всередині папки Міграції ви знайдете файл "Configuration.cs", увімкніть автоматичні міграції за допомогою: AutomaticMigrationsEnabled = true;
  4. Запустіть свою програму ще раз, оточення створює DefaultConnection, і ви побачите нові таблиці з вашого контексту. Це нове з'єднання вказує на localdb. Створений рядок з'єднання показує: Джерело даних = (LocalDb) \ v11.0 ... (більше параметрів та шлях до створеного файлу mdf)

Тепер ви можете створити нове з'єднання з ім'ям сервера: (LocalDb) \ v11.0 (натисніть оновити) Підключення до бази даних: Виберіть нову базу даних у спадному меню.

Я сподіваюся, що це допомагає.


-1

Я використовував SQL Server 2017 та Visual Studio 2015 localhost\SQLEXPRESS

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.