Mega Code Archive

 
Categories / ASP.Net / Development
 

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>