利用程式動態管理Web.config檔案

來源:互聯網
上載者:User
web|程式|動態  

Web.config檔案假設有如下需要管理的配置資訊: 

<appSettings>
    <add key="SiteTitle" value="網站名稱" />
    <add key="SiteUrl" value="首頁網址" />
    <add key="SiteLogo" value="網站Logo" />
    <add key="SiteBanner" value="網站Banner" />
    <add key="SiteEmail" value="聯絡Email" />
</appSettings>

實現的c#核心代碼:

一、將Web.config中的相關資訊讀入TextBox

private void Page_Load(object sender, System.EventArgs e)
  {
   if(!Page.IsPostBack)
   {
    //將Web.config中的相關值填入TextBox
    this.txtTitle.Text=System.Configuration.ConfigurationSettings.AppSettings["SiteTitle"];
    this.txtUrl.Text=System.Configuration.ConfigurationSettings.AppSettings["SiteUrl"];
    this.txtLogo.Text=System.Configuration.ConfigurationSettings.AppSettings["SiteLogo"];
    this.txtBanner.Text=System.Configuration.ConfigurationSettings.AppSettings["SiteBanner"];
    this.txtEmail.Text=System.Configuration.ConfigurationSettings.AppSettings["SiteEmail"];
   }

  }

二、將修改後的內容寫入Web.config

  private void btnSave_Click(object sender, System.EventArgs e)
  {
   string filename=Server.MapPath("web.config");
   string KeyName;//鍵名稱

   XmlDocument  xmldoc= new XmlDocument();
   try
   {
    xmldoc.Load(filename);
   }
   catch
   {
    Response.Write("<script>alert('讀檔案時錯誤,請檢查 Web.config 檔案是否存在!')</script>");
    return;
   }
   
   XmlNodeList DocdNodeNameArr=xmldoc.DocumentElement.ChildNodes;//文檔節點名稱數組
   foreach(XmlElement DocXmlElement in DocdNodeNameArr)
   {
    if(DocXmlElement.Name.ToLower()=="appsettings")//找到名稱為 appsettings 的節點
    {
     XmlNodeList KeyNameArr=DocXmlElement.ChildNodes;//子節點名稱數組
     if ( KeyNameArr.Count >0 )
     {
      foreach(XmlElement xmlElement in KeyNameArr)
      {
       KeyName=xmlElement.Attributes["key"].InnerXml;//索引值
       switch(KeyName)
       {
        case "SiteTitle":
         xmlElement.Attributes["value"].Value=this.txtTitle.Text;
         break;
        case "SiteUrl":
         xmlElement.Attributes["value"].Value=this.txtUrl.Text;
         break;
        case "SiteLogo":
         xmlElement.Attributes["value"].Value=this.txtLogo.Text;
         break;
        case "SiteBanner":
         xmlElement.Attributes["value"].Value=this.txtBanner.Text;
         break;
        case "SiteEmail":
         xmlElement.Attributes["value"].Value=this.txtEmail.Text;
         break;

       }
      }
     }
    }
   }
   try
   {
    xmldoc.Save(filename);
    Response.Write("<script>alert('OK,資訊已儲存!')</script>");
   }
   catch
   {
    Response.Write("<script>alert('寫檔案時錯誤,請檢查 Web.config 檔案是否存在!')</script>");
    return;
   }

  }




相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。