วิธีรับสตริงการเชื่อมต่อจากฐานข้อมูล


197

ฉันได้สร้างฐานข้อมูลด้วย SQL Server Management Studio ฉันต้องการใช้ในแอปพลิเคชัน C # ของฉัน ฉันต้องการสตริงการเชื่อมต่อหรือไม่

ฉันจะหาสตริงการเชื่อมต่อได้จากที่ไหนและฐานข้อมูลของฉันถูกเก็บไว้ที่ไหน?

ฉันต้องเผยแพร่มันหรืออะไรทำนองนั้นหรือมันอยู่ในเอกสารของฉันที่ไหนสักแห่ง?

using (var conn = new SqlConnection("your connection string to the database"))

ฉันจะรับสตริงการเชื่อมต่อได้อย่างไร ฉันจะหาสตริงการเชื่อมต่อเพื่อคัดลอกวางลงในส่วนด้านบนได้ที่ไหน

ฉันจะเผยแพร่ฐานข้อมูลของฉันเพื่อให้ Visual Studio สามารถรับได้อย่างไร จากนั้นฉันก็สามารถดึงสายเชื่อมต่อของที่นั่น?


ดูวิธีสร้างสตริงการเชื่อมต่อyoutu.be/1WgO7CDSmu8
anomepani

คำตอบ:


201

วิธีที่ง่ายที่สุดในการรับสตริงการเชื่อมต่อคือการใช้หน้าต่าง "Server Explorer" ใน Visual Studio ( มุมมองเมนู, Server Explorer ) และเชื่อมต่อกับเซิร์ฟเวอร์จากหน้าต่างนั้น

จากนั้นคุณจะเห็นสตริงการเชื่อมต่อในคุณสมบัติของเซิร์ฟเวอร์ที่เชื่อมต่อ (เลือกการเชื่อมต่อและกด F4 หรือ Alt + Enter หรือเลือกคุณสมบัติในเมนูคลิกขวา)

การตั้งค่าสตริงการเชื่อมต่อขั้นสูง:เมื่อสร้างการเชื่อมต่อคุณสามารถแก้ไขตัวเลือกสตริงการเชื่อมต่อขั้นสูงใด ๆ เช่น MARS, ความยืดหยุ่น, timeot, การกำหนดค่าการรวมกำไร ฯลฯ โดยคลิกที่ปุ่ม "ขั้นสูง ... " ที่ด้านล่างของ " เพิ่มการเชื่อมต่อ "กล่องโต้ตอบ คุณสามารถเข้าถึงกล่องโต้ตอบนี้ได้ในภายหลังโดยคลิกขวาที่การเชื่อมต่อข้อมูลและเลือก "แก้ไขการเชื่อมต่อ ... " ตัวเลือกขั้นสูงที่มีอยู่จะแตกต่างกันไปตามประเภทเซิร์ฟเวอร์

หากคุณสร้างฐานข้อมูลโดยใช้ SQL Server Management Studio ฐานข้อมูลจะถูกสร้างขึ้นในอินสแตนซ์ของเซิร์ฟเวอร์ดังนั้นในการปรับใช้แอปพลิเคชันของคุณคุณจะต้องสำรองข้อมูลของฐานข้อมูลและปรับใช้ในการปรับใช้ SQL Server อีกวิธีหนึ่งคุณสามารถใช้ไฟล์ข้อมูลโดยใช้ SQL Server Express (localDB ใน SQL Server 2012) ซึ่งจะแจกจ่ายให้กับแอปของคุณได้อย่างง่ายดาย

นั่นคือถ้าเป็นแอป ASP.NET มี App_Datafolder หากคุณคลิกขวาคุณสามารถเพิ่มองค์ประกอบใหม่ซึ่งอาจเป็นฐานข้อมูลเซิร์ฟเวอร์ SQL ไฟล์นี้จะอยู่ในโฟลเดอร์นั้นจะทำงานกับ SQL Express และจะปรับใช้ง่าย คุณต้องติดตั้ง SQL Express / localDB บนเครื่องของคุณเพื่อให้สามารถใช้งานได้


2
ฉันเข้าใจวิธีนี้และชอบ: D แต่คุณสามารถอธิบายเพิ่มเติมเกี่ยวกับวิธีการสำรองข้อมูลและปรับใช้แล้วได้อย่างไร ความรู้เกี่ยวกับ MS SQL Server ของฉันไม่ดีฉันเริ่มใช้มันเมื่อประมาณหนึ่งชั่วโมงก่อน: \
Pomster

มีเซิร์ฟเวอร์ realsql หรือไม่ คุณจะใช้เซิร์ฟเวอร์ sql express หรือไม่ เพียงพอกับ SQL Server Compact Edition หรือไม่ เราไม่สามารถรับสิ่งที่คุณสามารถใช้ได้หากคุณไม่ให้ข้อมูลเพิ่มเติม
JotaBe

1
ฉันใช้ MS SQl Server Management Studio 2008, MS SQL Management studio เพื่อสร้างฐานข้อมูล ฉันใช้แบบสอบถามเพื่อสร้างบางคอลัมน์ ตอนนี้ฉันต้องการที่จะเติมมันมี app ของฉัน C #
Pomster

แอพนี้จะถูกปรับใช้หรือไม่ คุณจะใช้มันในเครื่องหรือไม่ คุณคำนึงถึงประเภทของเซิร์ฟเวอร์ที่ต้องการหรือไม่ ฉันไม่จำเป็นต้องรู้วิธีที่คุณทำฐานข้อมูลของคุณ แต่ที่ไหนและทำไม ฉันไม่สามารถเดาสิ่งที่คุณต้องการ !!!
JotaBe

ฉันจะใช้มัน localy ฉันไม่ได้สิ่งที่คุณขอให้ฉันให้คุณ?
Pomster

113

วิธีที่ง่ายมากที่จะดึงสตริงการเชื่อมต่อคือการสร้างแฟ้มข้อความเปลี่ยนนามสกุลจาก.txtเพื่อ.udl

การดับเบิลคลิกที่ไฟล์. udlจะเป็นการเปิดตัวช่วยสร้างData Link Properties

กำหนดค่าและทดสอบการเชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูลของคุณ

ปิดตัวช่วยสร้างและเปิดไฟล์. udl ด้วยโปรแกรมแก้ไขข้อความที่คุณเลือกและเพียงคัดลอกสตริงการเชื่อมต่อ (ไม่มีProvider=<driver>ส่วน) เพื่อใช้ในแอปพลิเคชัน C # ของคุณ

ตัวอย่างเนื้อหาไฟล์ udl

[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLNCLI11.1;Integrated Security=SSPI;Persist Security Info=False;User ID="";Initial Catalog=YOURDATABASENAME;Data Source=YOURSERVERNAME;Initial File Name="";Server SPN=""

สิ่งที่คุณต้องการคัดลอกจากมัน

Integrated Security=SSPI;Initial Catalog=YOURDATABASENAME;Data Source=YOURSERVERNAME;

หากคุณต้องการระบุชื่อผู้ใช้และรหัสผ่านคุณสามารถนำมาใช้จากคำตอบอื่น ๆ

บทช่วยสอน: https://teusje.wordpress.com/2012/02/21/how-to-test-an-sql-server-connection/


หากวิธีนี้ใช้ไม่ได้มีไฟล์ reg บางตัวที่จะทำการเปลี่ยนแปลงรีจิสทรีเพื่อเปิด / ปิดการใช้งานส่วนขยาย UDL ฉันมักจะค้นหาโฟลเดอร์ * .reg ของ Windows
AMissico

ลองดูที่สร้างและบันทึกสตริงการเชื่อมต่อในไฟล์กำหนดค่าบนเว็บyoutu.be/1WgO7CDSmu8
anomepani

20

บนconnectionstrings.comคุณสามารถค้นหาสตริงการเชื่อมต่อสำหรับผู้ให้บริการ DB ทุกราย สตริงการเชื่อมต่อถูกสร้างขึ้นด้วยคุณสมบัติ / คุณสมบัติและค่าบางอย่าง สำหรับ SQL Server 2008 ดูเหมือนว่านี้ (มาตรฐานซึ่งเป็นสิ่งที่คุณต้องการที่นี่):

Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

บนmyServerAddressเขียนชื่อของอินสแตนซ์ที่คุณติดตั้ง (โดยค่าเริ่มต้น.\SQLEXPRESSสำหรับ SQL Server Express edition) เริ่มต้นแคตตาล็อก = ชื่อฐานข้อมูลของคุณคุณจะเห็นมันใน SSMS ด้านซ้ายหลังจากเชื่อมต่อ ส่วนที่เหลือพูดเพื่อตัวเอง

แก้ไข

Integrated Security=SSPIคุณจะต้องงดชื่อผู้ใช้และรหัสผ่านสำหรับหน้าต่างการตรวจสอบและเพิ่ม


11

หากคุณติดตั้งและตั้งค่า MS SQL Server และ Studio จัดการให้ไปที่ Visual Studio (Visual Studio ไม่ใช่ Studio จัดการเซิร์ฟเวอร์ SQL)

1]ใน Visual Studio ไปที่เครื่องมือ -> เชื่อมต่อกับฐานข้อมูล

2]ภายใต้ชื่อเซิร์ฟเวอร์เลือกชื่อเซิร์ฟเวอร์ฐานข้อมูลของคุณ (ให้รายการเติมหากใช้เวลา)

3]ภายใต้การเชื่อมต่อกับฐานข้อมูลเลือกเลือกหรือใส่ชื่อฐานข้อมูล

4]เลือกฐานข้อมูลของคุณจากดร็อปดาวน์

5]หลังจากเลือกฐานข้อมูลลองทดสอบการเชื่อมต่อ

6]หากการทดสอบการเชื่อมต่อสำเร็จให้คลิกตกลง

7]ใน Visual Studio ไปดู -> เซิร์ฟเวอร์ Explorer

8]ในหน้าต่าง Server Explorer ภายใต้การเชื่อมต่อข้อมูลเลือกฐานข้อมูลของคุณ คลิกขวาที่ฐานข้อมูลของคุณ -> คลิกคุณสมบัติ

9]ในคุณสมบัติของหน้าต่างคุณจะเห็นคุณสตริงการเชื่อมต่อ


9

ทางออกของฉันคือการใช้ (2010)

ในแผ่นงานใหม่เลือกเซลล์จากนั้น:

Data -> From Other Sources -> From SQL Server 

ใส่ในชื่อเซิร์ฟเวอร์ , เลือกตารางฯลฯ

เมื่อคุณไปที่กล่องโต้ตอบ "นำเข้าข้อมูล" ให้
คลิกที่Propertiesในกล่องโต้ตอบ "คุณสมบัติการเชื่อมต่อ"
เลือกแท็บ "คำจำกัดความ"

และที่นั่น Excel จะแสดงสตริงการเชื่อมต่อสำหรับการคัดลอก
(หรือแม้แต่ส่งออกไฟล์การเชื่อมต่อ ... )


มันทำงานได้อย่างสมบูรณ์และไม่ต้องการการเชื่อมต่อที่จะติดตั้งใน VS
Robino

ฮ่าฮ่านี่เป็นวิธีที่สร้างสรรค์ แต่มีประสิทธิภาพในการรับสิ่งนี้ ฉันลองก่อนเพราะมันไม่ได้เรียกร้องการพึ่งพาสิ่งที่จำเป็นต้องมี ขอบคุณ.
ทอดด์

3

ใส่แท็กด้านล่างในไฟล์ web.config ในโหนดการกำหนดค่า

 <connectionStrings>
<add name="NameOFConnectionString" connectionString="Data Source=Server;Initial Catalog=DatabaseName;User ID=User;Password=Pwd"
  providerName="System.Data.SqlClient" />

จากนั้นคุณสามารถใช้สายเชื่อมต่อด้านบนเช่น

SqlConnection con = new SqlConnection();
            con.ConnectionString = ConfigurationManager.ConnectionStrings["NameOFConnectionString"].ToString();

3

หากมีการใช้เครื่องมือ Linqpad หลังจากหนึ่งเชื่อมต่อกับฐานข้อมูลเป้าหมายจากการเชื่อมต่อหนึ่งจะได้รับสตริงการเชื่อมต่อที่จะใช้

  1. คลิกขวาที่การเชื่อมต่อฐานข้อมูล
  2. เลือก Properties
  3. เลือก Advanced
  4. เลือก Copy Full Connection String to Clipboard

ผลลัพธ์: Data Source=.\jabberwocky;Integrated Security=SSPI;Initial Catalog=Rasa;app=LINQPad

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


ลบapp=LinqPadไดรฟ์ขึ้นอยู่กับไดรเวอร์และรายการอื่น ๆ เช่นServerแทนแหล่งที่มาคุณอาจต้องปรับไดรเวอร์ให้เหมาะสมกับการดำเนินงานเป้าหมาย แต่มันให้แผ่นรองยิงหนึ่งอัน


2
ฉันเห็นด้วยกับโพสต์นี้
Jabberwocky

1

ฐานข้อมูล SQL Server จะถูกเก็บไว้โดยเริ่มต้นในเส้นทางต่อไปนี้

<drive>:\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\Data\

โดยที่<drive>ไดรฟ์การติดตั้งและ X คือหมายเลขอินสแตนซ์ (MSSQL.1 สำหรับอินสแตนซ์แรกของโปรแกรมฐานข้อมูล) Inorder เพื่อจัดเตรียมสตริงการเชื่อมต่อคุณควรทราบว่าชื่อเซิร์ฟเวอร์ของฐานข้อมูลเซิร์ฟเวอร์ sql คืออะไรซึ่งคุณเก็บไว้แล้วตามด้วยอินสแตนซ์ของเซิร์ฟเวอร์ฐานข้อมูล

โดยทั่วไปชื่อเซิร์ฟเวอร์จะเหมือนกับที่อยู่ IP ของเครื่องที่เชื่อมต่อฐานข้อมูลและอินสแตนซ์เริ่มต้นจะเป็นSqlExpress

สตริงการเชื่อมต่อมีแหล่งข้อมูลเช่นชื่อชื่อเซิร์ฟเวอร์, แคตตาล็อกเบื้องต้นเช่นชื่อฐานข้อมูลรหัสผู้ใช้เช่นการเข้าสู่ระบบรหัสผู้ใช้ของฐานข้อมูลรหัสผ่านคือรหัสผ่านเข้าสู่ระบบฐานข้อมูล


1
ฉันจะรับสตริงการเชื่อมต่อได้อย่างไร
Pomster

1
ฉันลองดูใน Program files \ Microsoft SQl Server และฉันไม่รู้ว่ากำลังมองหาอะไร
ปอมเตอร์

คุณไม่จำเป็นต้องมองหาโฟลเดอร์ที่เก็บฐานข้อมูลดูลิงค์ที่ฉันให้ไว้กับสตริงการเชื่อมต่อและเขียนสตริงการเชื่อมต่อของคุณ
Sai Kalyan Kumar Akshinthala

0

หากคุณสร้าง Connection Manager ในโครงการของคุณคุณสามารถดึงสตริงการเชื่อมต่อจากที่นั่น

String connection = this.dts.connections["<connection_manager_name>"];

และใช้การเชื่อมต่อนี้ใน:

using (var conn = new SqlConnection(connection))

โปรดแก้ไขฉันหากฉันผิด


0

วิธีที่ง่ายที่สุดที่เพื่อนของฉันคือเปิดแท็บเซิร์ฟเวอร์ explorer ใน visual studio 2019 (ในกรณีของฉัน) จากนั้นลองสร้างการเชื่อมต่อกับฐานข้อมูล หลังจากสร้างการเชื่อมต่อที่ประสบความสำเร็จเพียงแค่คลิกขวาที่มันและไปที่การสนับสนุน ที่นั่นคุณจะพบฟิลด์การเชื่อมต่อสตริงที่มีไวยากรณ์ที่ถูกต้อง! ... มันใช้งานได้สำหรับฉันเพราะฉันรู้ชื่อเซิร์ฟเวอร์ของฉันก่อนมือ .... ไม่สามารถหาไวยากรณ์ที่ถูกต้องเพื่อเรียกใช้ ef scaffold ของฉัน ...


-2
SqlConnection con = new SqlConnection();
con.ConnectionString="Data Source=DOTNET-PC\\SQLEXPRESS;Initial Catalog=apptivator;Integrated Security=True";

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