จะเชื่อมต่อ LocalDB ใน Visual Studio Server Explorer ได้อย่างไร


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 Server Explorer เป็น LocalDB ตัวช่วยสร้างไม่สามารถค้นหาได้(localdb)หรือไม่พบผู้ให้บริการใด ๆ ใน Server Explorer เพื่อยอมรับสตริงการเชื่อมต่ออย่างที่(localdb)\v11.0;Integrated Security=true;ฉันเคยเห็นนี่ถามสถานที่หลายแห่งใน StackOverflow แต่ไม่มีคำตอบทำงานหรือทำเครื่องหมายว่าเป็นคำตอบ โปรดช่วยด้วยนี่ไม่จำเป็นต้องน่าผิดหวังเท่านี้!

ขั้นตอนในการเชื่อมต่อ Visual Studio Server Explorer กับ LocalDB คืออะไร


70
ฉันมักจะสงสารคนที่เพิ่งเข้าสู่ธุรกิจนี้ 20 ปีที่แล้วเครื่องมือนี้ใช้งานง่ายกว่ามาก ขณะนี้เอกสารยังไม่เพียงพอและในกรณีส่วนใหญ่น้อยกว่า ฉันเห็น "เอกสาร" ตอนนี้บน MSDN ที่อธิบายวิธีการเช่น "foo" -> "นี่คือวิธี foo" Microsoft จริงเหรอ? เกิดอะไรขึ้นกับนักเขียนทางเทคนิค เกิดอะไรขึ้นกับ Books Online (ของจริง)
— Pittsburgh DBA

1
ตรวจสอบให้แน่ใจว่าคุณกำลังเรียกใช้ Visual Studio ในฐานะผู้ดูแล
— Darren Griffith

4
หากคุณโอเคกับการใช้ Visual Studio ของSQL Server วัตถุ Explorerแทนเซิร์ฟเวอร์ Explorer มันเป็นวิธีที่ง่ายกว่า (การกำหนดค่าด้วยตนเองน้อยกว่า) ตรวจสอบคำตอบของฉัน: stackoverflow.com/a/41906391/3645638
— Svek

การตั้งค่าของฉันสร้างฐานข้อมูลใน sqlserverexpress แทนที่จะเป็น localdb อะไรทำให้เกิดสิ่งนี้
— Jason Cheng

คำตอบ:


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
ใช่นี่คือสิ่งที่ควรจะทำงานในครั้งแรก แต่หากไม่เป็นเช่นนั้นขั้นตอนในคำตอบที่ยอมรับควรเริ่มให้บริการและทำให้ใช้งานได้
— orad

บางที SQL Server Object Explorer เริ่มต้นให้ฉันเมื่อฉันใช้เพื่อค้นหาว่าชื่อเซิร์ฟเวอร์ Entity Framework ใช้อะไร ฉันได้พบคำถามนี้ แต่กลัวที่จะลองคำตอบเพราะฉันหวังว่าจะง่ายขึ้นและไม่ได้อ่านอย่างเต็มที่เพราะฉันคิดว่าฉันต้องใช้ชื่อ
— ไพพ์

ฉันแค่มัวไปดูรายละเอียดหรือว่ามันน่าหงุดหงิดอย่างยิ่งที่การตั้งค่านี้ไม่ง่ายขึ้นหรือไม่ ไม่ว่าจะเป็นในปี 2012 หรือ 2015 ดูเหมือนว่าพวกเขาเกือบจะซ่อนอะไรแบบนี้ตลอดทั้ง IDE
— Rex_C

ขอบคุณ. ฉันกำลังคั้นสมองจนหาคำตอบของคุณ
— Alexandre N.

5
ทำไมต้องเป็น Microsoft ทำไมเปลี่ยนชื่อและไม่อัพเดทเอกสารของคุณ? (ขอบคุณสำหรับเส้นทาง VS 2015)
— Thibault D.

256

ตกลงตอบคำถามของฉันเอง

ขั้นตอนในการเชื่อมต่อ LocalDB กับ Visual Studio Server Explorer

  1. พร้อมรับคำสั่งเปิด
  2. วิ่ง SqlLocalDB.exe start v11.0
  3. วิ่ง SqlLocalDB.exe info v11.0
  4. คัดลอกชื่อไปป์อินสแตนซ์ที่ขึ้นต้นด้วย np: \ ...
  5. ใน Visual Studio เลือกเครื่องมือ> เชื่อมต่อกับฐานข้อมูล ...
  6. (localdb)\v11.0สำหรับป้อนชื่อเซิร์ฟเวอร์ หากไม่ได้ผลให้ใช้ชื่อไพพ์อินสแตนซ์ที่คุณคัดลอกมาก่อนหน้านี้ คุณสามารถใช้สิ่งนี้เพื่อเชื่อมต่อกับ SQL Management Studio
  7. เลือกฐานข้อมูลในรายการดรอปดาวน์ถัดไป
  8. คลิกตกลง

ป้อนคำอธิบายรูปภาพที่นี่


86
เกือบทุกการกระทำในวันนี้บนแพลตฟอร์ม MS เกี่ยวข้องกับเวทมนตร์หรือความรู้ที่ถูกจดจำมาก่อน .... ใครจะสนับสนุนสิ่งเหล่านี้ใน 5 ปีเมื่อมีชุดเวทมนตร์ใหม่ทั้งหมดเข้ามาแทนที่
— tbone

34
ขอบคุณ! เพียงเพื่อเพิ่มคำตอบที่ยอดเยี่ยมนี้ (และคำถามที่ยอดเยี่ยม): SqlLocalDb infoจะแสดงรายชื่อเซิร์ฟเวอร์ทั้งหมด ในกรณีของฉันหลังจากมายากล EF รหัสแรกฐานข้อมูลของฉันสิ้นสุดลงในMSSQLLocalDBไม่ได้v11.0ดังนั้นฉันเข้ามา(localdb)\MSSQLLocalDBในการเพิ่มการเชื่อมต่อกล่องโต้ตอบ
— biscuit314

1
SqlLocalDb.exe ปรากฏขึ้นสองครั้งในเส้นทางระบบของฉัน - เป็นอันดับแรกใน Server \ 110 \ Tools \ Binn SQL Files \ Microsoft C: \ Program จากนั้นใน SQL Server \ 120 \ Tools \ Binn Files \ Microsoft C: \ Program ดังนั้นเฉพาะเวอร์ชั่นก่อนหน้าเท่านั้นที่จะถูกเรียก! ฉันติดตั้งทั้ง VS2012 และ VS 2013 แล้ว
— John Pankowicz

2
ฉันเชื่อว่าผู้คนจำนวนมากขึ้นหันมาสนใจภาษาโปรแกรมอื่น ๆ จาก Microsoft มากขึ้น เนื้อหาการกำหนดค่าอย่างง่ายและเนื้อหาตำแหน่งไฟล์นั้นยากกว่าที่ภาษาอื่นขาด หากพวกเขาขาดเลย
— JustJohn

4
ฉันเกาหัวตลอดบ่ายนี้ ทำไมพวกเขาต้องทำให้มันซับซ้อนเมื่อมันเคยเป็นเรื่องง่ายมาก? ขอบคุณสำหรับความช่วยเหลือ
— George Williams

71

เลือกใน:

  1. แหล่งข้อมูล: Microsoft SQL Server (SqlClient)
  2. ชื่อเซิร์ฟเวอร์: (localdb)\MSSQLLocalDB
  3. เข้าสู่ระบบเซิร์ฟเวอร์: Use Windows Authentication

กดปุ่มรีเฟรชเพื่อรับชื่อฐานข้อมูล :)

ภาพหน้าจอ


1
อย่างใดมันเป็นคำตอบที่ทำงานเฉพาะใน 28/04/2015
— maazza

4
เหมือนกันที่นี่ vs2015 .. นี่คือคำตอบ .. ฉันเดาว่าพวกเขาเปลี่ยนชื่อ localDb?
— Punkouter

1
อันนี้ทำได้สำหรับ VS2015 RC ใน Win 8.1
— ScottG

เกี่ยวกับชื่อเซิร์ฟเวอร์: stackoverflow.com/questions/27197359/…
— kr85

ทำงานได้ใน vs2017 ด้วย
— Toke Breer-Mortensen

25

ใช้SQL Server Object Explorer (SSOX)แทน

ต่างจากคำตอบอื่น ๆ วิธีการนี้ใช้:
- ไม่มีคำสั่งพิเศษ
- ไม่มีการกำหนดค่าที่ซับซ้อน
เพียงใช้Explorer ของวัตถุเซิร์ฟเวอร์ SQL

มันค่อนข้างตรงไปตรงมา ...

  • จากดูเมนูเปิดSQL Server วัตถุ Explorer

หนึ่ง

  • คลิกขวาที่{YourTableName}ตาราง> View Designer

สอง

เสร็จสิ้น


16

มันใช้งานได้สำหรับฉัน

  1. พร้อมรับคำสั่งเปิด
  2. เรียกใช้ "เริ่ม SqlLocalDB.exe"
  3. การตอบสนองของระบบ "อินสแตนซ์ LocalDB" mssqllocaldb "สตาร์ทแล้ว"
  4. ใน VS, ดู / เซิร์ฟเวอร์ Explorer / (คลิกขวา) การเชื่อมต่อข้อมูล / เพิ่มการเชื่อมต่อ
    • แหล่งข้อมูล: 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 และเปิด Server Explorer คลิกขวาที่การเชื่อมต่อข้อมูลเลือกเพิ่มเลือก SQL Server ในประเภทชื่อเซิร์ฟเวอร์:

(localdb)\MSSQLLocalDB

โดยไม่ต้องป้อนชื่อ DB ให้คลิก 'ทดสอบการเชื่อมต่อ'


6

การแก้ไขไม่ทำงาน

เหมือนกับในภาพประกอบตัวอย่างทุกขั้นตอนเหล่านี้ให้การเข้าถึงฐานข้อมูล "ระบบ" เท่านั้นและไม่มีตัวเลือกให้เลือกฐานข้อมูลผู้ใช้ที่มีอยู่ที่คุณต้องการเข้าถึง

วิธีแก้ปัญหาในการเข้าถึงอินสแตนซ์ของเซิร์ฟเวอร์ Microsoft SQL ภายในเครื่อง (ไม่ใช่รุ่น Express) อยู่บนฝั่งเซิร์ฟเวอร์ SQL:

  1. เปิดไดอะล็อก Run (WinKey + R)
  2. ประเภท: "services.msc"
  3. เลือกเบราว์เซอร์เซิร์ฟเวอร์ SQL
  4. คลิกคุณสมบัติ
  5. เปลี่ยน "ปิดใช้งาน" เป็น "ด้วยตนเอง" หรือ "อัตโนมัติ"
  6. เมื่อปุ่มบริการ "เริ่ม" ได้รับการเปิดใช้งานให้คลิกที่มัน

ทำ! ตอนนี้คุณสามารถเลือก SQL Server ในพื้นที่ของคุณจากรายการชื่อเซิร์ฟเวอร์ในคุณสมบัติการเชื่อมต่อ


7
นี้ StackOverflow Q / A เป็นเรื่องเกี่ยวกับLocalDB ฉันคิดว่าคำตอบของคุณเกี่ยวกับการเปิดใช้งานอินสแตนซ์อื่นของ SQL
— orad

ฉันลองแก้ไขนี้ในสภาพแวดล้อมท้องถิ่นและแก้ไขตามที่คาดไว้สำหรับคำถามดั้งเดิมที่โพสต์ไม่ใช่สิ่งที่คุณคิดว่าทำได้ อย่าถือว่า Enterprise Edition = สภาพแวดล้อมขององค์กร พวกเราบางคนใช้ฉบับนั้นเพื่อการพัฒนาท้องถิ่นในเครื่องเวิร์กกรุ๊ป
— alejandrob

แม้ว่าฉันจะยังต้องป้อน (localdb) แทนที่จะใช้เบราว์เซอร์สิ่งนี้แก้ไขได้จริงสำหรับฉันดังนั้นจึงตอบคำถามได้ดี
— PeterJ

4

เรียกใช้ CMD ในฐานะผู้ดูแลระบบ

  1. จากเมนูเริ่ม 'cmd' - รอให้มันพบ
  2. คลิกขวาที่ cmd แล้วเลือก open as administrator
  3. ประเภท: cd Server \ 120 \ Tools \ Binn SQL Files \ Microsoft C: \ Program
  4. ประเภท: SqlLocalDB เริ่มต้น
  5. ตอนนี้พิมพ์: ข้อมูล SqlLocalDB
  6. แสดงอินสแตนซ์ของ SQL ที่ใช้งานได้ ... เลือกสิ่งที่คุณต้องการ ...
  7. เพื่อค้นหาเพิ่มเติมเกี่ยวกับประเภทอินสแตนซ์: SqlLocalDB info instanceName

  8. ตอนนี้จาก VS คุณสามารถตั้งค่าการเชื่อมต่อของคุณใน VS, ดู / Server Explorer / (คลิกขวา) การเชื่อมต่อข้อมูล / เพิ่มแหล่งข้อมูลการเชื่อมต่อ: 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 เซิร์ฟเวอร์ Explorer ;
  3. ค้นหา LocalDB ของคุณภายใต้แท็ก SQL Server

หวังว่านี่จะช่วยใครก็ได้


0

สถานการณ์จำลอง: Windows 8.1, VS2013 Ultimate, ติดตั้งและใช้งาน SQL Express, ปิดใช้งานเบราว์เซอร์เซิร์ฟเวอร์ SQL สิ่งนี้ใช้ได้กับฉัน:

  1. ก่อนอื่นฉันเปิดใช้งานเบราว์เซอร์เซิร์ฟเวอร์ SQL ภายใต้บริการ
  2. ใน Visual Studio: เปิดคอนโซลการจัดการแพคเกจจากนั้นพิมพ์: เปิดใช้ Migrations ; จากนั้นพิมพ์Enable-Migrations --ContextTypeName YourContextDbName ที่สร้างโฟลเดอร์ Migrations ใน VS
  3. ภายในโฟลเดอร์ Migrations คุณจะพบไฟล์ "Configuration.cs" เปิดการโยกย้ายอัตโนมัติโดย: AutomaticMigrationsEnabled = true;
  4. เรียกใช้แอปพลิเคชันของคุณอีกครั้งสภาพแวดล้อมจะสร้าง DefaultConnection และคุณจะเห็นตารางใหม่จากบริบทของคุณ การเชื่อมต่อใหม่นี้ชี้ไปที่ localdb สตริงการเชื่อมต่อที่สร้างขึ้นแสดง: Data Source = (LocalDb) \ v11.0 ... (พารามิเตอร์เพิ่มเติมและพา ธ ไปยังไฟล์ mdf ที่สร้างขึ้น)

ตอนนี้คุณสามารถสร้างการเชื่อมต่อใหม่ด้วยชื่อเซิร์ฟเวอร์: (LocalDb) \ v11.0 (กดรีเฟรช) เชื่อมต่อกับฐานข้อมูล: เลือกฐานข้อมูลใหม่ของคุณภายใต้ดรอปดาวน์

ฉันหวังว่ามันจะช่วย


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.