Bagaimana cara menyambung ke LocalDB di Visual Studio Server Explorer?


240

Saya tidak percaya saya tidak dapat menemukan solusi untuk ini setelah satu jam mencari. Saya mengikuti artikel ini tentang Entity Framework 6.0 yang memberikan walk-through sederhana pada Code First. Saya membuat proyek dan menginstal paket EF Nuget terbaru untuk dikompilasi. Saya juga memverifikasi bahwa saya memiliki Microsoft SQL Server 2012 Express LocalDB diinstal yang datang dengan Visual Studio 2013. Saya tidak punya contoh lain dari SQL yang diinstal pada komputer lokal saya. Program berjalan dan entri ditambahkan ke database dan dikeluarkan di konsol. Tetapi ketika artikel itu mengatakan "periksa localdb Anda" itu tidak mengatakan bagaimana! Saya tidak melihat file '.mdf' atau '.ldf' yang dibuat di bawah folder proyek. Saya mencoba segala cara untuk menghubungkan Visual Studio ' s Server Explorer ke LocalDB. Wizard tidak dapat menemukan(localdb)atau tidak dapat menemukan penyedia di Server Explorer untuk menerima string koneksi seperti (localdb)\v11.0;Integrated Security=true;saya telah melihat ini meminta beberapa tempat di StackOverflow tetapi tidak ada jawaban yang berfungsi atau ditandai sebagai jawaban. Tolong bantu, ini tidak harus membuat frustrasi ini!

Apa langkah-langkah untuk menghubungkan Visual Studio Server Explorer ke LocalDB?


70
Saya sering mengasihani orang yang baru saja memasuki bisnis ini. 20 tahun yang lalu, alat-alat itu sebenarnya jauh lebih mudah digunakan. Dokumentasi juga sekarang hampir tidak memadai, dan dalam kebanyakan kasus, kurang dari. Saya melihat "dokumentasi" sekarang di MSDN yang hanya menjelaskan metode, seperti "foo" -> "Ini adalah metode foo." Benarkah, Microsoft? Apa yang terjadi pada penulis teknis? Apa yang terjadi dengan Buku Daring (nyata)?
Pittsburgh DBA

1
Pastikan Anda menjalankan Visual Studio sebagai administrator.
Darren Griffith

4
Jika Anda setuju dengan menggunakan SQL Server Object Explorer dari Visual Studio alih-alih Server Explorer . Ini adalah solusi yang lebih sederhana (kurang konfigurasi manual), periksa jawaban saya: stackoverflow.com/a/41906391/3645638
Svek

Setup saya membuat database di sqlserverexpress daripada di localdb. Apa yang menyebabkan ini?
Jason Cheng

Jawaban:


282

Dalam Visual Studio 2012 yang harus saya lakukan adalah memasukkan:

(localdb)\v11.0

Visual Studio 2015 dan Visual Studio 2017 diubah menjadi:

(localdb)\MSSQLLocalDB

sebagai nama server saat menambahkan Microsoft SQL Server Datasumber di:

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

dan kemudian nama-nama basis data diisi. Saya tidak perlu melakukan semua langkah lain dalam jawaban yang diterima, meskipun alangkah baiknya jika nama server tersedia secara otomatis di kotak kombo nama server.

Anda juga dapat menelusuri nama basis data LocalDB yang tersedia di mesin Anda menggunakan:

View/SQL Server Object Explorer.

4
Yup, ini yang seharusnya bekerja pertama kali. Tetapi jika tidak, langkah-langkah dalam jawaban yang diterima harus memulai layanan dan membuatnya berfungsi.
orad

Mungkin SQL Server Object Explorer memulainya untuk saya karena saya menggunakannya untuk mencari tahu apa nama server yang digunakan Entity Framework. Saya telah menemukan pertanyaan ini, tetapi agak takut mencoba jawabannya karena saya berharap sesuatu yang lebih sederhana dan belum sepenuhnya membacanya karena saya pikir saya harus menggunakan nama pipa :)
RationalDev suka GoFundMonica

Apakah saya hanya buta dengan detail, atau sangat frustasi bahwa pengaturan ini tidak lebih intuitif? Entah pada 2012 atau 2015, sepertinya mereka hampir menyembunyikan hal-hal seperti ini di seluruh IDE.
Rex_C

Terima kasih. Saya memeras otak saya sampai menemukan jawaban Anda.
Alexandre N.

5
Mengapa Microsoft, mengapa? Mengapa mengganti nama dan tidak memperbarui dokumentasi Anda? (Terima kasih atas jalur VS 2015)
Thibault D.

256

OKE, menjawab pertanyaan saya sendiri.

Langkah-langkah untuk menghubungkan LocalDB ke Visual Studio Server Explorer

  1. Buka command prompt
  2. Lari SqlLocalDB.exe start v11.0
  3. Lari SqlLocalDB.exe info v11.0
  4. Salin nama pipa Instance yang dimulai dengan np: \ ...
  5. Di Visual Studio pilih ALAT> Sambungkan ke Basis Data ...
  6. Untuk Nama Server masukkan (localdb)\v11.0. Jika tidak berhasil, gunakan nama pipa Instance yang Anda salin sebelumnya. Anda juga dapat menggunakan ini untuk terhubung dengan SQL Management Studio.
  7. Pilih database pada daftar dropdown berikutnya
  8. Klik OK

masukkan deskripsi gambar di sini


86
Hampir setiap tindakan hari ini di platform MS melibatkan beberapa sihir atau pengetahuan yang dihafal sebelumnya .... siapa yang akan mendukung hal-hal ini dalam 5 tahun ketika serangkaian sihir yang baru benar-benar ada?
Tulang

34
Terima kasih! Untuk menambahkan jawaban yang luar biasa ini (dan pertanyaan yang sangat bagus): SqlLocalDb infoakan mendaftar semua nama server. Dalam kasus saya, setelah sulap kode-EF pertama, basis data saya berakhir MSSQLLocalDBtidak v11.0, jadi saya memasukkan (localdb)\MSSQLLocalDBdalam kotak dialog Tambahkan Koneksi.
biscuit314

1
SqlLocalDb.exe muncul dua kali di jalur sistem saya - pertama di C: \ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn dan kemudian di C: \ Program Files \ Microsoft SQL Server \ 120 \ Tools \ Binn. Karena itu hanya versi sebelumnya yang akan dipanggil! Saya sudah menginstal VS2012 dan VS 2013.
John Pankowicz

2
Saya percaya semakin banyak orang tertarik ke bahasa pemrograman lain dari Microsoft. Hal konfigurasi dan hal lokasi file yang sederhana ini menjadi lebih sulit daripada apa pun yang tidak dimiliki bahasa lain. Jika mereka kekurangan sama sekali.
JustJohn

4
Aku sudah menggaruk kepalaku sepanjang sore ini. Mengapa mereka harus membuatnya begitu rumit, padahal dulu sangat mudah? Terima kasih untuk bantuannya.
George Williams

71

Pilih di:

  1. Sumber data: Microsoft SQL Server (SqlClient)
  2. Nama server: (localdb)\MSSQLLocalDB
  3. Masuk ke server: Use Windows Authentication

Tekan tombol Refresh untuk mendapatkan nama basis data :)

Tangkapan layar


1
entah bagaimana itu adalah satu-satunya jawaban yang berhasil pada 28/04/2015
maazza

4
sama di sini vs2015 .. Ini adalah jawabannya .. Saya kira mereka mengganti nama localDb?
punkouter

1
Yang ini melakukannya untuk VS2015 RC pada Win 8.1.
ScottG


Bekerja di vs2017 juga.
Toke Breer-Mortensen

25

Gunakan SQL Server Object Explorer (SSOX) sebagai gantinya

Berbeda dengan jawaban lain, pendekatan ini menggunakan:
- Tidak ada perintah khusus.
- Tidak ada konfigurasi yang rumit.
Cukup gunakan SQL Server Object Explorer

Ini cukup mudah ...

  • Dari menu Lihat , buka SQL Server Object Explorer .

satu

  • Klik kanan pada {YourTableName}tabel> Lihat Desainer

dua

Selesai


16

Ini berhasil untuk saya.

  1. Buka command prompt
  2. Jalankan "SqlLocalDB.exe start"
  3. Respons sistem "Contoh LocalDB" mssqllocaldb "dimulai."
  4. Dalam VS , Lihat / Server Explorer / (Klik kanan) Koneksi Data / Tambah Koneksi
    • Sumber Data: Microsoft SQL Server (SqlClient)
    • Nama server: (localdb) \ MSSQLLocalDB
    • Masuk ke server: Gunakan Windows Authentication
  5. Tekan "Uji Koneksi", Lalu OK.

8

Berikut ini berfungsi dengan Visual Studio 2017 Community Edition pada Windows 10 menggunakan SQLServer Express 2016.

Buka PowerShell untuk memeriksa apa yang disebut menggunakan SqlLocalDB.exe infodan apakah itu berjalan dengan SqlLocalDB.exe info NAME. Begini tampilannya di komputer saya:

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

Jika tidak berjalan maka Anda harus memulainya SqlLocalDB.exe start MSSQLLocalDB. Ketika berjalan Anda melihat Instance pipe name:yang dimulai dengan np:\\. Salin yang bernama string pipa. Dalam VS2017 buka tampilan Server Explorerdan buat koneksi tipe baru Microsoft SQL Server (SqlClient)(jangan tertipu oleh tipe file lain yang Anda inginkan tipe koneksi full fat) dan aturServer name: menjadi contoh nama pipa yang Anda salin dari PowerShell.

Saya juga mengatur Connect to databaseagar menjadi database yang sama yang ada di string koneksi yang bekerja di proyek Core Dotnet / Entity Framework Core saya yang diatur menggunakan dotnet ef database update.

Anda bisa masuk dan membuat database menggunakan sqlcmddan string pipa bernama:

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

Ada petunjuk tentang cara membuat pengguna untuk aplikasi Anda di https://docs.microsoft.com/en-us/sql/tools/sqllocaldb-utility


7

Visual Studio 2015 RC, telah menginstal LocalDb 12, instruksi yang sama dengan sebelumnya tetapi masih tidak harus tahu 'sihir', sebelum tangan untuk menggunakan ini, contoh default harus dinyalakan ... Bicara lengkap, tidak ada solusi :

cmd> sqllocaldb start

Yang akan ditampilkan

LocalDB instance "MSSQLLocalDB" started.

Nama instance Anda mungkin berbeda. Apa pun yang muncul ke VS dan membuka Server Explorer, klik kanan Koneksi Data, pilih Tambah, pilih SQL Server, dalam jenis nama server:

(localdb)\MSSQLLocalDB

Tanpa memasukkan nama DB, klik 'Uji Koneksi'.


6

Perbaiki tidak berhasil.

Persis seperti pada ilustrasi contoh, semua langkah ini hanya menyediakan akses ke database "sistem", dan tidak ada opsi untuk memilih database pengguna yang ada yang ingin Anda akses.

Solusi untuk mengakses contoh Microsoft SQL server lokal (bukan Express Edition) berada di sisi SQL Server:

  1. Buka dialog Run (WinKey + R)
  2. Ketik: "services.msc"
  3. Pilih SQL Server Browser
  4. Klik Properti
  5. Ubah "nonaktif" menjadi "Manual" atau "Otomatis"
  6. Ketika tombol layanan "Mulai" diaktifkan, klik di atasnya.

Selesai! Sekarang Anda dapat memilih SQL Server lokal dari daftar Nama Server di Properti Koneksi.


7
T / A StackOverflow ini adalah tentang LocalDB . Saya pikir jawaban Anda adalah tentang mengaktifkan contoh SQL lainnya.
orad

Saya mencoba memperbaiki ini pada lingkungan lokal dan melakukan FIX seperti yang diharapkan untuk pertanyaan asli yang diposting, bukan apa yang Anda pikirkan . Jangan berasumsi bahwa Edisi Perusahaan = Lingkungan perusahaan. Beberapa dari kita menggunakan edisi itu untuk pengembangan lokal di mesin workgroup.
alejandrob

Meskipun saya masih harus memasukkan (localdb) daripada menggunakan browser ini sebenarnya memperbaikinya untuk saya, jadi itu menjawab pertanyaan dengan baik.
PeterJ

4

Jalankan CMD sebagai admin.

  1. dari menu awal 'cmd' - tunggu sampai menemukannya.
  2. Klik kanan pada cmd, dan pilih buka sebagai administrator
  3. ketik: cd C: \ Program Files \ Microsoft SQL Server \ 120 \ Tools \ Binn
  4. ketik: mulai SqlLocalDB
  5. sekarang ketik: info SqlLocalDB
  6. Memperlihatkan contoh sql yang sedang berjalan yang tersedia ... pilih yang Anda inginkan ...
  7. untuk menemukan lebih banyak tentang tipe instance: SqlLocalDB info instanceName

  8. sekarang dari VS Anda dapat mengatur koneksi Anda Dalam VS , Lihat / Server Explorer / (Klik kanan) Koneksi Data / Tambahkan Koneksi Data Sumber: Microsoft SQL Server (SqlClient) Nama server: (localdb) \ MSSQLLocalDB Masuk ke server: Gunakan Windows Otentikasi Tekan "Uji Koneksi", Lalu OK.

  9. pekerjaan selesai


3

Cara tercepat di Visual Studio 2017 adalah pergi ke Alat -> SQL Server -> Permintaan baru .. Pilih dari database lokal dan pilih nama Database yang diinginkan di bagian bawah.

Cara alternatif

Nama Visual Studio 2017 Server adalah:

(localdb)\MSSQLLocalDB

Tambahkan koneksi baru menggunakan menu Tools -> Connect to Database ...


Jika Anda tidak menginstal SQLExpress ke instance default Anda juga dapat mencoba ... '(localdb)'
Jason Geiger

1

Saya mengikuti langkah-langkah di atas, tapi saya lupa menginstal SQL Server 2014 LocalDB sebelum konfigurasi Visual Studio 2015.

Langkah-langkah saya adalah sebagai berikut:

  1. Instal SQL Server 2014 LocalDB;
  2. Buka Visual Studio 2015 dan kemudian SQL Server Object Explorer ;
  3. Temukan LocalDB Anda di bawah tag SQL Server.

Semoga ini bisa membantu siapa saja.


0

Skenario: Windows 8.1, VS2013 Ultimate, SQL Express Diinstal dan dijalankan, SQL Server Browser Dinonaktifkan. Ini bekerja untuk saya:

  1. Pertama saya mengaktifkan SQL Server Browser di bawah layanan.
  2. Di Visual Studio: Buka Konsol Manajer Paket lalu ketik: Aktifkan-Migrasi ; Kemudian, ketikkan Enable-Migrations -ContextTypeName YourContextDbName yang membuat folder Migrasi di VS.
  3. Di dalam folder Migrasi Anda akan menemukan file "Configuration.cs", aktifkan migrasi otomatis dengan: AutomaticMigrationsEnabled = true;
  4. Jalankan lagi aplikasi Anda, lingkungan membuat DefaultConnection dan Anda akan melihat tabel baru dari konteks Anda. Koneksi baru ini menunjuk ke localdb. String koneksi yang dibuat menunjukkan: Sumber Data = (LocalDb) \ v11.0 ... (lebih banyak parameter dan jalur ke file mdf yang dibuat)

Anda sekarang dapat membuat koneksi baru dengan nama Server: (LocalDb) \ v11.0 (klik refresh) Hubungkan ke database: Pilih database baru Anda di bawah dropdown.

Saya harap ini membantu.


-1

Dengan SQL Server 2017 dan Visual Studio 2015, saya menggunakan localhost\SQLEXPRESS

masukkan deskripsi gambar di sini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.