“Máy chủ” so với “Nguồn dữ liệu” trong chuỗi kết nối


112

Tôi mới sử dụng SqlServer, ngay bây giờ tôi đã SqlLocalDbcài đặt để hoạt động cục bộ. Tốt, nhưng tôi có thể thấy hai chuỗi kết nối thường và cả hai đều hoạt động:

Data Source=(localdb)\v11.0;Integrated Security=true;

Server=(localdb)\v11.0;Integrated Security=true;

Sự khác biệt chính xác giữa hai là gì?


1
từ khóa liên quan cho máy chủ, db, tên người dùng, mật khẩu được liệt kê trong câu trả lời này: stackoverflow.com/a/15529085/661933
nawfal

Câu trả lời:


114

Để có danh sách đầy đủ của tất cả các từ khóa chuỗi kết nối, bao gồm cả những từ khóa hoàn toàn đồng nghĩa, vui lòng tham khảo SqlConnection.ConnectionStringtài liệu :

Chúng hoàn toàn tương đương:

  • Nguồn dữ liệu
  • Người phục vụ
  • Địa chỉ
  • Addr
  • Địa chỉ mạng

2
Hãy đặt ra câu hỏi, tại sao Microsoft lại tạo ra các sản phẩm tương đương ...? (ngoại trừ làm cho chúng tôi nhầm lẫn :-))
bytedev

1
@bytedev - hợp lưu lịch sử, tôi tin. Hầu hết các tên này bắt đầu được sử dụng trong các "tiêu chuẩn" kết nối DB cũ hơn. Khi xây dựng ADO.Net, miễn là không có xung đột về cách sử dụng, bạn cũng có thể cho phép nhiều cách sử dụng phổ biến tồn tại trong các tiêu chuẩn cũ hơn, để dễ dàng chuyển mã.
Damien_The_Un Believer

@Damien_The_Un Believer Hợp lưu là gì? Tôi đã tìm kiếm nó nhưng có rất nhiều thứ của Atlassian (và cái đó tôi biết). Nhưng nghĩa của từ là gì? Tôi cố gắng "dịch: ngã ba" nhưng có nada ...
Konrad Viltersten

Có thể hữu ích khi biết rằng, nếu vì lý do nào đó mà chuỗi kết nối của bạn bao gồm nhiều hơn một trong các từ khóa này (và xung đột giá trị địa chỉ), mục cuối cùng sẽ được sử dụng; các giá trị trước đó bị bỏ qua. Vì vậy, ví dụ, với chuỗi kết nối Server=192.168.2.2;Data Source=localhost, máy khách sẽ tôn trọng localhostgiá trị và bỏ qua 192...giá trị.
Brian Lacy


11

Chúng đồng nghĩa - bạn có thể sử dụng một trong hai.

Đó là - đối với khuôn khổ có liên quan, chúng đều giống nhau.


Tôi đã google tìm kiếm lý do cho phạm vi từ khóa tương đương trong chuỗi kết nối. Cho đến nay, tôi vẫn chưa tìm được lời giải thích hợp lý. Tôi cho rằng đó là do lý do lịch sử và người dùng từ các "thế giới" khác nhau đến với nhau. Có lý do nào khác không?
DonkeyBanana

0

Thiết lập yêu thích của tôi là thiết lập không chứa bất kỳ khoảng trắng nào. Ở dạng đơn giản nhất, người ta phải cung cấp bốn giá trị - URL, vùng chứa, người dùng và thông tin đăng nhập.

  • người phục vụ
  • cơ sở dữ liệu
  • uid
  • pwd

Vì vậy, một chuỗi kết nối trông như thế này.

server = ngột ngạt.databases.net; cơ sở dữ liệu = ngột ngạt; uid = konrad; pwd = Abc123 (!);


Konrad, tôi nghĩ những người phản đối không hiểu những gì bạn nói. Ví dụ, ý bạn là "máy chủ" tốt hơn "nguồn dữ liệu" bởi vì một từ không chứa khoảng trắng. Tương tự đối với "uid" thay vì "id người dùng". Tôi nghĩ rằng câu trả lời của bạn là hợp lệ.
Nhấp vào Ok

@ClickOk Có thể, có thể là ... Tuy nhiên, bạn đã hiểu, vì vậy ... :)
Konrad Viltersten
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.