Custom Configuration Sections
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Custom Configuration Sections</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>Custom Configuration Sections</h1>
<asp:Label ID="lblTime" runat="server" />
<br />
<asp:Label ID="lblTest" runat="server" />
<br />
<asp:Label ID="lblContent" runat="server" />
<br />
<asp:GridView ID="gv" runat="server" />
</div>
</form>
</body>
</html>
File: Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
lblTime.Text = "Posted at " + DateTime.Now.ToLongTimeString();
if (!IsPostBack)
{
string strTest;
strTest = ((Hashtable)ConfigurationManager.GetSection("altDB"))["Test"].ToString();
lblTest.Text = strTest;
lblContent.Text = ((Hashtable)ConfigurationManager.GetSection("altDB"))["Content"].ToString();
CreateGrid();
}
}
private void CreateGrid()
{
DataSet dsGrid = new DataSet();
dsGrid = (DataSet)ConfigurationManager.GetSection("system.web/DataSetSectionHandler");
gv.DataSource = dsGrid.Tables[0];
gv.DataBind();
}
}
File: SectionHandlers.cs
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public class DataSetSectionHandler : IConfigurationSectionHandler
{
public Object Create(Object parent,Object configContext,System.Xml.XmlNode section)
{
string strSql;
strSql = section.Attributes.Item(0).Value;
string connectionString = "server=Local; uid=sa; pwd=password; database=Northwind";
SqlDataAdapter da = new SqlDataAdapter(strSql,connectionString);
DataSet dsData = new DataSet();
da.Fill(dsData, "Customers");
return dsData;
}
}
File: Web.Config
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<configSections>
<section name="altDB" type="System.Configuration.DictionarySectionHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<sectionGroup name="system.web">
<section name="DataSetSectionHandler" type="DataSetSectionHandler,SectionHandlers" />
</sectionGroup>
</configSections>
<altDB>
<add key="Test" value=" SERVER=MyServer;DATABASE=Test;UID=myID;PWD=secret;" />
<add key="Content" value=" SERVER=MyServer;DATABASE=Content;UID=myID;PWD=secret;" />
</altDB>
<appSettings/>
<connectionStrings/>
<system.web>
<compilation debug="true"/>
<authentication mode="Windows" />
<DataSetSectionHandler str="Select CompanyName,ContactName,City from Customers" />
</system.web>
</configuration>
Related examples in the same category