Đọc chuỗi kết nối từ web.config


253

Làm cách nào tôi có thể đọc một chuỗi kết nối từ một web.configtệp vào một lớp chung có trong thư viện lớp?

Tôi đã thử:

WebConfigurationManager

ConfigurationManager

Nhưng các lớp này không được công nhận trong thư viện lớp của tôi.

Câu trả lời:


177

Thêm System.Configurationlàm tài liệu tham khảo.

Đối với một số lý do kỳ lạ, nó không được bao gồm theo mặc định.



66

C #

// Add a using directive at the top of your code file    
using System.Configuration;

// Within the code body set your variable    
string cs = ConfigurationManager.ConnectionStrings["connectionStringName"].ConnectionString;

VB

' Add an Imports statement at the top of your code file    
Imports System.Configuration

' Within the code body set your variable    
Dim cs as String = ConfigurationManager.ConnectionStrings("connectionStringName").ConnectionString

3
"Thêm một tham chiếu ở đầu tệp mã của bạn" => đó là một lệnh sử dụng, không phải là một tham chiếu!
Mishax

25

Thêm System.Configurationlàm tài liệu tham khảo sau đó:

 using System.Configuration;

 ...

 string conn = 
    ConfigurationManager.ConnectionStrings["ConnectionName"].ConnectionString;

19

Tôi đoán bạn cần thêm một tham chiếu đến cụm System.Configuration nếu điều đó chưa được thêm vào.

Ngoài ra, bạn có thể cần phải chèn dòng sau vào đầu tệp mã của mình:

using System.Configuration;

Typo, nên sử dụng System.Configuration;
Nick Binnet

14

Trong VB: Điều này sẽ làm việc

ConfigurationManager.ConnectionStrings("SQLServer").ConnectionString

Trong C#đó sẽ là (theo nhận xét của Ala)

ConfigurationManager.ConnectionStrings["SQLServer"].ConnectionString

Những dấu ngoặc đơn cần phải là dấu ngoặc.
Charles Burns

1
@ CharlesBurns, Cảm ơn, tôi đã viết nhầm bằng VB, trong C # chắc chắn là như vậy ConfigurationManager.ConnectionStrings["SQLServer"].ConnectionString
Alaa

Ahh, tôi thậm chí không nhận ra đó là VB. Tôi nghĩ đó là một lỗi đánh máy. Theo một cách nào đó, sai lầm của tôi cũng vậy.
Charles Burns

13
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.DataVisualization.Charting;
using System.Web.UI.WebControls;  

C #

string constring = ConfigurationManager.ConnectionStrings["ABCD"].ConnectionString;
                using (SqlConnection con = new SqlConnection(constring))

DƯỚI ĐÂY WEB.CONFIG MÃ FILE

<connectionStrings>
    <add name="ABCD" connectionString="Data Source=DESKTOP-SU3NKUU\MSSQLSERVER2016;Initial Catalog=TESTKISWRMIP;Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>

Trong đoạn mã trên ABCD là Tên kết nối


Bổ sung: Bên cạnh bộ chỉ mục chấp nhận tên của chuỗi kết nối, nó cũng được phép sử dụng các chỉ số nguyên - rất hữu ích nếu bạn muốn đọc tất cả các chuỗi kết nối trong một forvòng lặp ( for (int i = 0; i < numOfConnections; i++) { var conn = ConfigurationManager.ConnectionStrings[i]; ... }) và làm cho chúng có thể được chọn trong hộp tổ hợp. Với var numOfConnections = ConfigurationManager.ConnectionStrings.Count;bạn có thể xác định có bao nhiêu chuỗi kết nối tồn tại. Trong ví dụ conn.Namenày chứa tên của kết nối.
Matt

11

Bạn phải gọi lớp này trên đầu trang hoặc lớp của bạn:

using System.Configuration;

Sau đó, bạn có thể sử dụng Phương thức này trả về chuỗi kết nối để sẵn sàng chuyển đến đối tượng sqlconnection để tiếp tục công việc của bạn như sau:

    private string ReturnConnectionString()
    {
       // Put the name the Sqlconnection from WebConfig..
        return ConfigurationManager.ConnectionStrings["DBWebConfigString"].ConnectionString;
    }

Chỉ cần làm rõ một cách rõ ràng đây là giá trị trong cấu hình web:

  <add name="DBWebConfigString" connectionString="....." />   </connectionStrings>

Trong dự án Web tốt hơn là sử dụng WebConfigurationManager trong System.Web.Configuration.
BJladu4

9
using System.Configuration;


string conn = ConfigurationManager.ConnectionStrings["ConStringName"].ToString();

4
using System.Configuration;


string connString = ConfigurationManager.ConnectionStrings["ConStringName"].ToString();

Hãy nhớ đừng sử dụng ConnectionStrings [index] bởi vì bạn có thể cấu hình và tính di động của máy toàn cầu


2

Đầu tiên thêm điều này:

using System.Configuration;

1

Mọi người dường như đang đề nghị thêm rằng

using System.Configuration;

cái nào đúng.

Nhưng tôi có thể đề nghị bạn nghĩ về việc cài đặt tiện ích mở rộng Visual Studio của ReSharper không?

Khi nó được cài đặt, thay vì thấy một lỗi mà một lớp không được xác định, bạn sẽ thấy một lời nhắc cho bạn biết nó đang lắp ráp ở đâu, hỏi bạn có muốn thêm câu lệnh sử dụng không.

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.