大虾们帮我看看有什么问题!

lkcs 2004-09-06 03:32:56
1.//ConfigurationSettings.AppSettings.Set("server",TextBox1.Text );
//System.Configuration.AppSettingsReader
不能写Web.Config ,这个.Set是不是拿来骗人的?
2.经过大虾的提示:改为以下
private void Button1_Click(object sender, System.EventArgs e)
{ XmlDocument serverset = new XmlDocument();
serverset.Load(Server.MapPath("Web.config"));
XmlNodeList nodes = serverset.SelectNodes("configuration/appSettings/add");
foreach(XmlNode node in nodes)
{
node.Attributes["server"].Value = TextBox1.Text ;
}
serverset.Save(Server.MapPath("Web.config"));

}
结果报错:
System.NullReferenceException: 未将对象引用设置到对象的实例
源错误:


行 76: foreach(XmlNode node in nodes)
行 77: {
行 78: node.Attributes["server"].Value = TextBox1.Text ;



源文件: f:\web\wst\server.aspx.cs 行: 78

HELP ME,谢谢!
...全文
234 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
happyno7 2004-09-07
  • 打赏
  • 举报
回复
想改的是value啊,不是key
-----------------------------
那就是这样嘛,唉
...
try
{
if(node.Attributes["key"].Value == "server")
node.Attributes["value"].Value = TextBox1.Text ;

catch
{
....
}
...
qimini 2004-09-07
  • 打赏
  • 举报
回复
看看我给的代码呢?
lkcs 2004-09-06
  • 打赏
  • 举报
回复
爱要怎么说出口啊?
现在基本上可以了,就是出了点小问题,我想改的是value啊,不是key啊!
lkcs 2004-09-06
  • 打赏
  • 举报
回复
已经改为:
private void Button1_Click(object sender, System.EventArgs e)
{ XmlDocument serverset = new XmlDocument();
serverset.Load(Server.MapPath("Web.config"));
XmlNodeList nodes = serverset.SelectNodes("configuration/appSettings");
foreach(XmlNode node in nodes)
{
try{
if(node.Attributes["key"].Value == "server")
node.Attributes["key"].Value = TextBox1.Text ;
catch
{}
}
serverset.Save(Server.MapPath("Web.config"));

}
且可写
但效果还是哪样...
lkcs 2004-09-06
  • 打赏
  • 举报
回复
3KS
vzxq 2004-09-06
  • 打赏
  • 举报
回复
help up
lkcs 2004-09-06
  • 打赏
  • 举报
回复
不好意思,刚才掉线~~~~~~~~~~
qimini 2004-09-06
  • 打赏
  • 举报
回复
不能访问
onekey 2004-09-06
  • 打赏
  • 举报
回复
参看:http://dev.csdn.net/develop/article/29/29495.shtm
private void Button1_Click(object sender, System.EventArgs e)
{ XmlDocument serverset = new XmlDocument();
serverset.Load(Server.MapPath("Web.config"));
XmlNodeList nodes = serverset.SelectNodes("configuration/appSettings");
foreach(XmlNode node in nodes)
{
try{
if(node.Attributes["key"].Value == "server")
node.Attributes["key"].Value = TextBox1.Text ;
catch
{}
}
serverset.Save(Server.MapPath("Web.config"));

}

Web.config的属性为可写
lkcs 2004-09-06
  • 打赏
  • 举报
回复
我按qimini(循序渐进)的说法改了以后,点击按钮后好像无效,大家帮我看一下:
http://ssit.mpc.cn/wst/server.aspx
tangyanjun1 2004-09-06
  • 打赏
  • 举报
回复
晕,qimini(循序渐进) 说的才是对的。
<add key="server" value="(local)" />
这个节点有哪一个属性叫server?她只有两个属性key,value嘛。属性key的值是server
qimini 2004-09-06
  • 打赏
  • 举报
回复
foreach(System.Xml.XmlNode node in nodes)
{
if (node.Attributes["key"].Value == "server")
{
node.Attributes["value"].Value = ".";
}
}
lkcs 2004-09-06
  • 打赏
  • 举报
回复
晕啊,我哭:
好学生,我按你说的
异常详细信息: System.UnauthorizedAccessException: 对路径“F:\WEB\wst\Web.config”的访问被拒绝
onekey 2004-09-06
  • 打赏
  • 举报
回复
用try{
}
catch{}

try{
node.Attributes["server"].Value = TextBox1.Text ;
}
catch
{}
onekey 2004-09-06
  • 打赏
  • 举报
回复
if(node.Attributes["server"] != null)
lkcs 2004-09-06
  • 打赏
  • 举报
回复
改了,可还是没有实例化,是哪一个呢?
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:


行 87: {
行 88: if(node != null)
行 89: node.Attributes["server"].Value = TextBox1.Text ;
行 90: }
行 91: serverset.Save(Server.MapPath("Web.config"));


源文件: f:\web\wst\server.aspx.cs 行: 89

堆栈跟踪:


[NullReferenceException: 未将对象引用设置到对象的实例。]
wst.server.Button1_Click(Object sender, EventArgs e) in f:\web\wst\server.aspx.cs:89
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain() +1277


onekey 2004-09-06
  • 打赏
  • 举报
回复
SelectNodes("configuration/appSettings/add")的路径应该是configuration/appSettings
lkcs 2004-09-06
  • 打赏
  • 举报
回复
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
这是这一行报错:
行 89: node.Attributes["server"].Value = TextBox1.Text
onekey 2004-09-06
  • 打赏
  • 举报
回复
不好意思,看错了
你的ADD下面的每个字节点不一定有server属性,所以要先判断一下:

foreach(XmlNode node in nodes)
{
node.Attributes["server"].Value = TextBox1.Text ;
}
serverset.Save(Server.MapPath("Web.config"));
改为

foreach(XmlNode node in nodes)
{
if(node.Attributes["server"] != null)
node.Attributes["server"].Value = TextBox1.Text ;
}
serverset.Save(Server.MapPath("Web.config"));
lkcs 2004-09-06
  • 打赏
  • 举报
回复
我有的啊?
<appSettings>
<add key="server" value="(local)" />
<add key="database" value="wst" />
<add key="uid" value="sa" />
<add key="pwd" value="" />
</appSettings>
现在WEB。CONFIG是这样的啊!
加载更多回复(6)

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧