2008-09-15 27 views
9

Muốn thay đổi chương trình chuỗi kết nối cho cơ sở dữ liệu sử dụng nhà cung cấp thành viên của asp.net trong một ứng dụng cửa sổ. Không gian tên system.configuration cho phép thay đổi cài đặt người dùng, tuy nhiên, chúng tôi muốn điều chỉnh cài đặt ứng dụng? Có cần phải viết một lớp với sử dụng XML để sửa đổi các lớp học? Có cần phải xóa các kết nối hiện tại (có thể chọn một kết nối để xóa) và thêm một kết nối mới? Có thể điều chỉnh chuỗi kết nối hiện tại không?VS2005 C# Thay đổi chuỗi kết nối theo chương trình có trong app.config

Trả lời

6

Bạn programatically có thể mở cấu hình với việc sử dụng không gian tên System.configuration:

Configuration myConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

Sau đó, bạn có thể truy cập vào bộ sưu tập dây kết nối tại địa chỉ:

myConfig.ConnectionStrings.ConnectionStrings

Bạn có thể thay đổi tuy nhiên bạn muốn thu thập và thực hiện cuộc gọi .Save() trên đối tượng cấu hình.

0

Sử dụng lớp ConnectionStringsSection. Tài liệu này thậm chí còn cung cấp một ví dụ về cách tạo một ConnectionString mới và có khung lưu nó vào tệp cấu hình mà không cần phải triển khai toàn bộ XML shebang.

Xem here và duyệt xuống để xem ví dụ.

8
// Get the application configuration file. 
System.Configuration.Configuration config = 
     ConfigurationManager.OpenExeConfiguration(
     ConfigurationUserLevel.None); 

// Create a connection string element and 
// save it to the configuration file. 

// Create a connection string element. 
ConnectionStringSettings csSettings = 
     new ConnectionStringSettings("My Connection", 
     "LocalSqlServer: data source=127.0.0.1;Integrated Security=SSPI;" + 
     "Initial Catalog=aspnetdb", "System.Data.SqlClient"); 

// Get the connection strings section. 
ConnectionStringsSection csSection = 
    config.ConnectionStrings; 

// Add the new element. 
csSection.ConnectionStrings.Add(csSettings); 

// Save the configuration file. 
config.Save(ConfigurationSaveMode.Modified); 
+0

Đây là thêm chuỗi kết nối, không sửa đổi chuỗi hiện tại – Thomas

9

Phải làm điều này chính xác. Đây là mã làm việc cho tôi:

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings"); 
connectionStringsSection.ConnectionStrings["Blah"].ConnectionString = "Data Source=blah;Initial Catalog=blah;UID=blah;password=blah"; 
config.Save(); 
ConfigurationManager.RefreshSection("connectionStrings"); 
Các vấn đề liên quan