您的位置:首页 > 其它

对web.config进行新增修改删除读取操作

2006-12-19 15:57 766 查看


1.建立一个class,ReadWriteConfig.cs


using System;


using System.Configuration;


using System.Reflection;


using System.Web;


using System.Xml;


public enum ConfigFileType






{


WebConfig,


AppConfig


}




namespace WebApplication1






{




/**//// <summary>


/// Summary description for ReadWriteConfig.


/// </summary>


public class ReadWriteConfig






{


public string docName = String.Empty;


private XmlNode node=null;


private int _configType;


public int ConfigType






{




get

{ return _configType; }




set

{ _configType=value; }


}






SetValue#region SetValue


public bool SetValue(string key, string value)






{


XmlDocument cfgDoc = new XmlDocument();


loadConfigDoc(cfgDoc);


// retrieve the appSettings node


node = cfgDoc.SelectSingleNode("//appSettings");


if( node == null )






{


throw new InvalidOperationException( "appSettings section not found");


}


try






{


// XPath select setting "add" element that contains this key


XmlElement addElem= (XmlElement)node.SelectSingleNode("//add[@key='" +key +"']") ;


if(addElem!=null)






{


addElem.SetAttribute("value",value);


}


// not found, so we need to add the element, key and value


else






{


XmlElement entry = cfgDoc.CreateElement("add");


entry.SetAttribute("key",key);


entry.SetAttribute("value",value);


node.AppendChild(entry);


}


//save it


saveConfigDoc(cfgDoc,docName);


return true;


}


catch






{


return false;


}


}




#endregion






saveConfigDoc#region saveConfigDoc


private void saveConfigDoc(XmlDocument cfgDoc,string cfgDocPath)






{


try






{


XmlTextWriter writer = new XmlTextWriter( cfgDocPath , null );


writer.Formatting = Formatting.Indented;


cfgDoc.WriteTo( writer );


writer.Flush();


writer.Close();


return;


}


catch






{


throw;


}


}




#endregion






removeElement#region removeElement


public bool removeElement (string elementKey)






{


try






{


XmlDocument cfgDoc = new XmlDocument();


loadConfigDoc(cfgDoc);


// retrieve the appSettings node


node = cfgDoc.SelectSingleNode("//appSettings");


if( node == null )






{


throw new InvalidOperationException( "appSettings section not found");


}


// XPath select setting "add" element that contains this key to remove


node.RemoveChild( node.SelectSingleNode("//add[@key='" +elementKey +"']") );


saveConfigDoc(cfgDoc,docName);


return true;


}


catch






{


return false;


}


}


#endregion






modifyElement#region modifyElement


public bool modifyElement (string elementKey)






{


try






{


XmlDocument cfgDoc = new XmlDocument();


loadConfigDoc(cfgDoc);


// retrieve the appSettings node


node = cfgDoc.SelectSingleNode("//appSettings");


if( node == null )






{


throw new InvalidOperationException( "appSettings section not found");


}


// XPath select setting "add" element that contains this key to remove


node.RemoveChild(node.SelectSingleNode("//add[@key='" +elementKey +"']"));


saveConfigDoc(cfgDoc,docName);


return true;


}


catch






{


return false;


}


}


#endregion






loadConfigDoc#region loadConfigDoc


private XmlDocument loadConfigDoc( XmlDocument cfgDoc )






{


// load the config file


if( Convert.ToInt32(ConfigType)==Convert.ToInt32(ConfigFileType.AppConfig))






{


docName= ((Assembly.GetEntryAssembly()).GetName()).Name;


docName += ".exe.config";


}


else






{


docName=HttpContext.Current.Server.MapPath("web.config");


}


cfgDoc.Load( docName );


return cfgDoc;


}


#endregion


}


}
2.建立测试页面
2.1 html


<HTML>


<HEAD>


<title>WebForm1</title>


<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">


<meta name="CODE_LANGUAGE" Content="C#">


<meta name="vs_defaultClientScript" content="JavaScript">


<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">


</HEAD>


<body MS_POSITIONING="GridLayout">


<form id="Form1" method="post" runat="server">


<asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 296px; POSITION: absolute; TOP: 120px" runat="server"


Text="删除"></asp:Button>


<asp:Button id="Button2" style="Z-INDEX: 102; LEFT: 232px; POSITION: absolute; TOP: 120px" runat="server"


Text="新增"></asp:Button>


<asp:Label id="Label1" style="Z-INDEX: 103; LEFT: 104px; POSITION: absolute; TOP: 32px" runat="server">key</asp:Label>


<asp:TextBox id="TextBox1" style="Z-INDEX: 104; LEFT: 168px; POSITION: absolute; TOP: 32px" runat="server"></asp:TextBox>


<asp:Label id="Label2" style="Z-INDEX: 105; LEFT: 104px; POSITION: absolute; TOP: 96px" runat="server">value</asp:Label>


<asp:TextBox id="TextBox2" style="Z-INDEX: 106; LEFT: 168px; POSITION: absolute; TOP: 80px" runat="server"></asp:TextBox>


<asp:Button id="Button3" style="Z-INDEX: 107; LEFT: 360px; POSITION: absolute; TOP: 120px" runat="server"


Text="修改"></asp:Button>


</form>


</body>


</HTML>
2.2 cs代码


public class WebForm1 : System.Web.UI.Page






{


protected System.Web.UI.WebControls.Button Button1;


protected System.Web.UI.WebControls.Label Label1;


protected System.Web.UI.WebControls.TextBox TextBox1;


protected System.Web.UI.WebControls.Label Label2;


protected System.Web.UI.WebControls.TextBox TextBox2;


protected System.Web.UI.WebControls.Button Button3;


protected System.Web.UI.WebControls.Button Button2;




private void Page_Load(object sender, System.EventArgs e)






{




}






Web Form Designer generated code#region Web Form Designer generated code


override protected void OnInit(EventArgs e)






{


//


// CODEGEN: This call is required by the ASP.NET Web Form Designer.


//


InitializeComponent();


base.OnInit(e);


}






/**//// <summary>


/// Required method for Designer support - do not modify


/// the contents of this method with the code editor.


/// </summary>


private void InitializeComponent()






{


this.Button1.Click += new System.EventHandler(this.Button1_Click);


this.Button2.Click += new System.EventHandler(this.Button2_Click);


this.Button3.Click += new System.EventHandler(this.Button3_Click);


this.Load += new System.EventHandler(this.Page_Load);




}


#endregion




private void Button2_Click(object sender, System.EventArgs e)






{


//新增


ReadWriteConfig config = new ReadWriteConfig();


config.ConfigType = (int)ConfigFileType.WebConfig;


config.SetValue(this.TextBox1.Text,this.TextBox2.Text);


}




private void Button1_Click(object sender, System.EventArgs e)






{


//删除


ReadWriteConfig config = new ReadWriteConfig();


config.ConfigType = (int)ConfigFileType.WebConfig;


config.removeElement(this.TextBox1.Text);


}




private void Button3_Click(object sender, System.EventArgs e)






{


//修改


ReadWriteConfig config = new ReadWriteConfig();


config.ConfigType = (int)ConfigFileType.WebConfig;


config.SetValue(this.TextBox1.Text,this.TextBox2.Text);


}


}
3.测试代码下载/Files/singlepine/readwritconfig.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐