Thiết lập chuỗi kết nối trong ASP.NET to SQL SERVER


96

Tôi đang cố gắng thiết lập chuỗi kết nối trong tệp web.config của mình (Visual Studio 2008 / ASP.NET 3.5) với máy chủ cục bộ (máy chủ SQL 2008).

Trong web.config của tôi, tôi đặt chuỗi kết nối ở đâu và như thế nào?

Đây là tệp web.config trông giống như ngay bây giờ: http://imwired.net/aspnet/Online_web.config

Câu trả lời:


148

Bạn cũng có thể sử dụng cái này, nó đơn giản hơn. Điều duy nhất bạn cần đặt là "YourDataBaseName".

  <connectionStrings>
    <add name="ConnStringDb1" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
  </connectionStrings>

Nơi đặt chuỗi kết nối

<?xml version='1.0' encoding='utf-8'?>  
  <configuration>  
    <connectionStrings>  
      <clear />  
      <add name="Name"   
       providerName="System.Data.ProviderName"   
       connectionString="Valid Connection String;" />  
    </connectionStrings>  
  </configuration>  

Cách sử dụng nó trong mã C # của tôi đằng sau khi tôi muốn thực hiện một số truy vấn.
Nikhil Tamhankar,

1
Bạn có thể xem chi tiết thông tin về chuỗi kết nối trong dot net từ: connectionstrings.com/sql-server-2008
Vimal Bhatt

4
Tôi tự hỏi có bao nhiêu người đã sao chép và dán dòng đó ... :-) Tôi nghĩ đây là lần thứ 30 tôi đặt câu hỏi này .... có lẽ tôi nên học thuộc lòng.
Ayo Adesina

Phiên bản này thiếu các thuộc tính tên người dùng / mật khẩu.
Burgi

@Burgi Không, nó không thiếu cái đó (xem dấu Integrated Security=True?), Nó không cần thiết vì cơ sở dữ liệu đọc tệp theo quyền của họ - hãy thử nó. Đây là lý do tôi nói rằng đơn giản hơn, bởi vì bạn không cần phải thêm chúng. Nếu bạn không sử dụng nó, mở cơ sở dữ liệu của bạn và thiết lập có sự cho phép đúng, trên cơ sở dữ liệu và trên các tập tin
Aristos

107

Vì một số lý do tôi không thấy câu trả lời đơn giản ở đây.

Đặt cái này ở đầu mã của bạn:

using System.Web.Configuration;
using System.Data.SqlClient; 

Đặt cái này vào Web.Config:

<connectionStrings >
    <add
         name="myConnectionString" 
         connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;"
         providerName="System.Data.SqlClient"/>
</connectionStrings>

và nơi bạn muốn thiết lập biến kết nối:

SqlConnection con = new SqlConnection(
    WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);

5
WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionStringcó thể đúng hơn về mặt kỹ thuật.
nghiền nát

2
Tôi cũng cần:using System.Data.SqlClient;
nu everest

21

Tôi thấy điều này rất khó để có câu trả lời nhưng cuối cùng đã tìm ra. Vì vậy, tôi sẽ viết các bước dưới đây.

  1. Trước khi bạn thiết lập chuỗi kết nối bằng mã, hãy đảm bảo rằng bạn thực sự có thể truy cập cơ sở dữ liệu của mình. Bắt đầu rõ ràng bằng cách đăng nhập vào máy chủ cơ sở dữ liệu bằng cách sử dụng SSMS (Sql Server Management Studio hoặc nó tương đương trong các cơ sở dữ liệu khác) cục bộ để đảm bảo bạn có quyền truy cập bằng bất kỳ chi tiết nào bạn định sử dụng.

  2. Tiếp theo (nếu cần), nếu bạn đang cố gắng truy cập cơ sở dữ liệu trên một máy chủ riêng biệt, hãy đảm bảo rằng bạn có thể làm tương tự trong SSMS. Vì vậy, hãy thiết lập SSMS trên máy tính và đảm bảo bạn có thể truy cập máy chủ bằng tên người dùng và mật khẩu vào máy chủ cơ sở dữ liệu đó.

Nếu bạn không thực hiện đúng 2 điều trên, bạn chỉ đang lãng phí thời gian của mình vì bạn không thể truy cập cơ sở dữ liệu. Điều này có thể là do người dùng bạn thiết lập sai, không bật quyền truy cập từ xa (nếu cần) hoặc các cổng không được mở (nếu cần), trong số nhiều lý do khác nhưng đây là những lý do phổ biến nhất.

Khi bạn đã xác minh rằng bạn có thể truy cập cơ sở dữ liệu bằng SSMS. Bước tiếp theo, chỉ nhằm mục đích tự động hóa quy trình và tránh sai sót, là để hệ thống thực hiện công việc cho bạn.

  1. Bắt đầu một dự án trống, thêm sự lựa chọn của bạn về Linq to SQL hoặc Dataset (EF tốt nhưng chuỗi kết nối được nhúng bên trong chuỗi con EF, tôi muốn một chuỗi sạch) và kết nối với cơ sở dữ liệu của bạn bằng cách sử dụng các chi tiết đã xác minh ở trên trong wizzard chuỗi con. Thêm bất kỳ bảng nào và lưu tệp.

Bây giờ, hãy vào cấu hình web, và thật kỳ diệu, bạn sẽ thấy chuỗi kết nối hoạt động sạch đẹp ở đó với tất cả các chi tiết bạn cần.


{Dưới đây là một phần của bài đăng cũ nên bạn có thể bỏ qua điều này, tôi để nó tham khảo vì đây là cách cơ bản nhất để truy cập cơ sở dữ liệu chỉ từ mã phía sau. Vui lòng cuộn xuống và tiếp tục từ bước 2 bên dưới. }

Hãy giả sử các bước trên bắt đầu với một cái gì đó giống như sau làm chuỗi kết nối của bạn trong mã phía sau:

string conString = "Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;";

Bước này rất quan trọng. Đảm bảo rằng bạn có định dạng chuỗi kết nối ở trên hoạt động trước khi thực hiện các bước sau. Đảm bảo rằng bạn thực sự có thể truy cập dữ liệu của mình bằng cách sử dụng một số dạng văn bản lệnh sql hiển thị một số dữ liệu từ bảng dưới dạng nhãn hoặc phần văn bản hoặc bất cứ thứ gì, vì đây là cách đơn giản nhất để thực hiện chuỗi kết nối.

Sau khi bạn chắc chắn rằng kiểu trên hoạt động, bây giờ là lúc để thực hiện các bước tiếp theo:

1. Xuất chuỗi ký tự của bạn (nội dung trong dấu ngoặc kép, bao gồm cả dấu ngoặc kép) sang phần sau của tệp web.config (đối với nhiều chuỗi kết nối, chỉ cần thực hiện nhiều dòng:

<configuration>
    <connectionStrings>
        <add name="conString" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
        <add name="conString2" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
        <add name="conString3" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

{Trên đây là một phần của bài viết cũ, sau khi thực hiện 3 bước trên, toàn bộ quá trình này sẽ được thực hiện cho bạn, nên bạn có thể bỏ qua. Tôi chỉ để nó ở đây để tham khảo của riêng tôi. }


2. Bây giờ hãy thêm dòng mã sau vào mã C # phía sau, được ghép sẵn ngay dưới định nghĩa lớp (tức là không bên trong một phương thức). Điều này trỏ đến thư mục gốc của dự án của bạn. Về cơ bản nó là tên dự án. Đây thường là vị trí của tệp web.config (trong trường hợp này dự án của tôi được gọi là MyProject.

static Configuration rootWebConfig = WebConfigurationManager.OpenWebConfiguration("/MyProject");

3. Bây giờ thêm dòng mã sau vào mã C # phía sau. Điều này thiết lập một hằng chuỗi mà bạn có thể tham khảo ở nhiều nơi trong suốt mã của mình nếu bạn cần một chuỗi con trong các phương thức khác nhau.

const string CONSTRINGNAME = "conString";

4. Tiếp theo thêm dòng mã sau vào mã C # phía sau. Điều này lấy chuỗi kết nối từ tệp web.config với tên conString (từ hằng số ở trên)

ConnectionStringSettings conString = rootWebConfig.ConnectionStrings.ConnectionStrings[CONSTRINGNAME];

5. Cuối cùng, nơi bạn ban đầu sẽ có một cái gì đó tương tự như dòng mã này:

SqlConnection con = new SqlConnection(conString)

bạn sẽ thay thế nó bằng dòng mã này:

SqlConnection con = new SqlConnection(conString.ConnectionString)

Sau khi thực hiện 5 bước này, mã của bạn sẽ hoạt động như trước đó. Tìm hiểu lý do bạn kiểm tra hằng số trước ở định dạng gốc của nó để bạn biết liệu đó có phải là sự cố với chuỗi kết nối hay đó là sự cố với mã.

Tôi mới sử dụng C #, ASP.Net và Sql Server. Vì vậy, tôi chắc chắn phải có một cách tốt hơn để làm mã này. Tôi cũng sẽ cung cấp phản hồi về cách cải thiện các bước này nếu có thể. Tôi đã tìm kiếm tất cả những thứ như thế này nhưng cuối cùng tôi đã tìm ra nó sau nhiều tuần làm việc chăm chỉ. Tự nhìn lại, tôi vẫn nghĩ, phải có một cách dễ dàng hơn.

Tôi hy vọng điều này là hữu ích.


14

nó phải nằm trong <configuration>nút:

  <connectionStrings >
    <add name="myconnectionstring" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>
  </connectionStrings>

này trang web có thông tin thêm về nó:


1
Làm thế nào để sử dụng nó trong C # code đằng sau của tôi khi tôi muốn thực hiện một số truy vấn trong asp.net 4
Nikhil Tamhankar

7

Kết nối trong WebConfig

Thêm chuỗi kết nối của bạn vào <connectionStrings>phần tử trong Web.configtệp.

<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"   providerName="System.Data.SqlClient" />
</connectionStrings>

Trong lớp.Cs

public static string ConnectionString{
get{
return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;}
set{}

6

trong tiêu đề

using System.Configuration;

trong mã

SqlConnection conn = new SqlConnection(*ConfigurationManager.ConnectionStrings["connstrname"].ConnectionString*);

3

Bạn cũng có thể sử dụng tệp cấu hình bên ngoài để chỉ định phần chuỗi kết nối và tham chiếu tệp đó trong tệp cấu hình ứng dụng như trong web.config

Giống như trong web.configtệp:

<configuration>  
    <connectionStrings configSource="connections.config"/>  
</configuration>  

Tệp cấu hình bên ngoài connections.configsẽ chứa phần kết nối

<connectionStrings>  
  <add name="Name"   
   providerName="System.Data.ProviderName"   
   connectionString="Valid Connection String;" />  

</connectionStrings>  

Việc sửa đổi nội dung của tệp cấu hình bên ngoài sẽ không khởi động lại ứng dụng (như ASP.net thực hiện theo mặc định với bất kỳ thay đổi nào trong tệp cấu hình ứng dụng)


2

Nếu bạn muốn viết chuỗi kết nối trong Web.config thì hãy viết dưới sting đã cho

<connectionStrings>
  <add name="Conn" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"
   providerName="System.Data.SqlClient" />
 </connectionStrings>

HOẶC LÀ

bạn ngay trong tệp aspx.cs như

SqlConnection conn = new SqlConnection("Data Source=12.16.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com");

2

Bạn có thể đưa cái này vào web.configtệp của mình connectionStrings:

<add name="myConnectionString" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>

2

Bạn có thể sử dụng định dạng sau:

  <connectionStrings>
    <add name="ConStringBDName" connectionString="Data Source=serverpath;Initial Catalog=YourDataBaseName;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
  </connectionStrings>

Hầu hết có thể bạn sẽ đặt thẻ kết nối trong web.config sau <appSettings>

Hãy thử cái này.


1

Bạn có thể thử điều này. Nó rất đơn giản

<connectionStrings>         
    <add name="conString" connectionString="Data Source=SQLServerAddress;Initial Catalog=YourDatabaseName; User Id=SQLServerLoginId; Password=SQLServerPassword"/>
</connectionStrings>

OP hỏi "ở đâu trong web.config".
Steve Smith,

0

Hãy thử điều này cho chuỗi kết nối của bạn.

 Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
 User ID=myDomain\myUsername;Password=myPassword;

Chào mừng bạn đến với Stack Overflow! Khi bạn đăng câu trả lời cho một câu hỏi cũ, tốt hơn là bạn nên thêm một số ngữ cảnh, vì sao câu trả lời của bạn tốt hơn câu trả lời cũ. Nếu không, nó có nguy cơ bị bỏ qua ở cuối danh sách các câu trả lời.
Monolo

0

TÔI VỪA TÌM RA!! Bạn cần đặt kết nối chuỗi này và trỏ trực tiếp đến cơ sở dữ liệu của mình . Trường hợp tương tự trên máy chủ.

"Provider=Microsoft.ACE.OLEDB.12.0; 
 Data Source=c:/inetpub/wwwroot/TEST/data/data.mdb;"

Nó hoạt động !! :)


0

Lưu trữ chuỗi kết nối trong web.config

Một phương pháp hay là lưu trữ chuỗi kết nối cho ứng dụng của bạn trong một tệp cấu hình thay vì dưới dạng một chuỗi được mã hóa cứng trong mã của bạn. Cách thực hiện việc này khác nhau giữa .NET 2.0 và .NET 3.5 (trở lên). Bài báo này bao gồm cả hai. https://www.connectionstrings.com/store-connection-string-in-webconfig/


-1

Tạo một phần được gọi là bên trong <connectionStrings></connectionStrings>của bạn, sau đó thêm các chuỗi kết nối khác nhau vào đó, chẳng hạnweb.config<configuration></configuration>

<configuration>

  <connectionStrings>
   <add name="ConnectionStringName" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True"/>
  </connectionStrings>

</configuration>

Đây là danh sách tất cả các định dạng chuỗi kết nối khác nhau https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx


"Tạo một phần có tên <connectionStrings> </connectionStrings> trong web.config của bạn" - ở đâu trong web.config?
Steve Smith,

Con của thẻ "configuration", thông tin thêm docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/…
Guy
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.