Programming/.NET
일반적으로 데이터 베이스 연결정보와 같은 데이터는 web.config 안에 저장하게 됩니다. 이것은 정해진 규칙은 아니지만 대부분의 경우 웹사이트안에서 연결정보에 대한 접근을 쉽게할 수 있고 관련정보의 관리또한 간단해 질 수 있기 때문입니다.
<connectionStrings>
  <add name="AdventureWorks2012ConnectionString" connectionString="Data Source=localhost;Initial Catalog=AdventureWorks2012;User ID=sa;Password=1234" providerName="System.Data.SqlClient" />
</connectionStrings>

▶ <코드 1-1>

<코드 1-1>은 web.config 의 connectionStrings 섹션에 저장된 MSSQL 서버 연결정보를 보여주고 있습니다.

만약 web.config 안에 저장된 연결정보가 상황에 따라 런타임에서 동적으로 다루어져야 하는 경우 ConnectionStringSettings 클래스를 활용하게 됩니다. 이 클래스는 web.config 파일에 저장된 연결정보 섹션에 대한 컬렉션을 담고 있는 클래스로서 web.config 안의 연결정보를 추가하거나 수정, 삭제가 가능하도록 합니다.

ConnectionStringSettings css = new ConnectionStringSettings();
css.ConnectionString = "Server=localhost;User ID=sa;Password=1234;Database=AdventureWorks2012";
css.Name = "new_connection";
css.ProviderName = "System.Data.SqlClient";

Configuration c = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
c.ConnectionStrings.ConnectionStrings.Add(css);
c.Save(ConfigurationSaveMode.Minimal);

▶ <코드 1-2>

<코드 1-2>는 web.config 파일안에 연결정보를 추가하는 내용입니다. System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration 메소드에 의해 반환된 Configuration 클래스는 web.config 안에 연결정보에 대한 컬렉션을 가지게 되며 이 클래스의 add 메소드를 호출하여 ConnectionStringSettings 클래스로 설정된 연결정보를 Configuration 클래스의 ConnectionStrings 컬렉션에 추가하게 됩니다.

또한 DB연결정보를 생성할때 SqlConnectionStringBuilder 클래스를 사용할 수 있는데 이 클래스는 연결정보문자열 자체를 강력한 타입형식으로 가져와 속성으로서 DB 연결정보를 설정할 수 있도록 합니다.

Configuration c = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
ConnectionStringSettings css = c.ConnectionStrings.ConnectionStrings["new_connection"];

SqlConnectionStringBuilder ssb = new SqlConnectionStringBuilder(css.ConnectionString);
ssb.DataSource = "192.168.0.15";
css.ConnectionString = ssb.ConnectionString;

c.ConnectionStrings.ConnectionStrings.Add(css);
c.Save(ConfigurationSaveMode.Minimal);
▶ <코드 1-3>

<코드 1-2>는 런타임에서 web.config 안에 연결정보를 수정할 수 있도록 하는 예제입니다. Configuration 클래스 에서 특정 연결정보를 가져와 SqlConnectionStringBuilder 클래스에 바인딩하고 원하는 속성(예제에서는 DataSource 속성)의 정보를 수정한 후 다시 Configuration 클래스를 통해 저장함으로서 기존의 연결정보값을 수정하는 것입니다.

'Programming > .NET' 카테고리의 다른 글

[ASP.NET] GridView  (3) 2014.06.11
[ASP.NET] FormView  (0) 2014.06.10
[ASP.NET] web.config 에 저장된 연결정보 다루기  (0) 2014.06.09
[ASP.NET] SiteMapDataSource  (0) 2014.05.28
[ASP.NET] ObjectDataSource  (1) 2014.05.23
[ASP.NET] XmlDataSource  (0) 2014.05.13
0 0