我正在创建一个注册页面,用于通过regiration表单存储用户详细信息的文件是XML文件。当我使用下面的代码编写条目时,系统抛出了NullReferenceException异常。
protected void register_Click(object sender, EventArgs e)
{
try
{
//var path = Path.Combine(Request.PhysicalApplicationPath, "App_Data\\PageData.xml");
XDocument doc = XDocument.Load(Server.MapPath("~/App_Data/userlogs.xml"));
XElement user = new XElement("user",
new XElement("fname", fname.Text.ToString()),
new XElement("lname", lname.Text.ToString()),
new XElement("dob", dob.Text.ToString()),
new XElement("uid", uid.Text.ToString()),
new XElement("pwd", pwd.Text.ToString()),
new XElement("email", email.Text.ToString()),
new XElement("lastlog", System.DateTime.Now.ToString())
);
doc.Root.Element("users").Add(user);
doc.Save("userlog.xml");
}
catch (Exception exe)
{
error.Visible = true;
error.Text = exe.ToString();
}
}
我的userslog.xml文件格式: -
<users>
<user>
<fname>abc</fname>
<lname>xyz</lname>
<dob>MM/DD/YYYY</dob>
<uid>username</uid>
<pwd>***</pwd>
<email>pqrs@xyz.com</email>
<lastlog>DATE:TIME</lastlog>
</user>
</users>
通过此代码我想创建新标签
<users>
<user>
<fname>abc</fname>
<lname>xyz</lname>
<dob>MM/DD/YYYY</dob>
<uid>username</uid>
<pwd>***</pwd>
<email>pqrs@xyz.com</email>
<lastlog>DATE:TIME</lastlog>
</user>
<user>
<fname>bcd</fname>
<lname>lmo</lname>
<dob>MM/DD/YYYY</dob>
<uid>username1</uid>
<pwd>***</pwd>
<email>pqrs@xyz.com</email>
<lastlog>DATE:TIME</lastlog>
</user>
</users>
所以它希望我的代码能够以下面所希望的方式运行我的文件。
答案 0 :(得分:1)
从给出的代码中可以获得NullReferenceException
1.请在以下路径中检查您的xml文件是否可用:
~/App_Data/userlogs.xml
- &GT;您的文件应放在RootFolder of Project/App_Data/
在继续之前,您可以通过以下方式检查是否存在文件:
System.IO.File.Exists(filepath)
{
//true so file exists
//contine
}
答案 1 :(得分:0)
尝试调试程序。
删除try catch部分,以便程序流出异常
添加断点以查看程序的运行方式
试试这些:
App_Data/userlogs.xml
是否存在?如果可能,发布更多代码
答案 2 :(得分:0)
这是最终的工作代码:感谢@sudhakar
protected void register_Click(object sender, EventArgs e)
{
//var path = Path.Combine(Request.PhysicalApplicationPath, "App_Data\\PageData.xml");
File.Exists("~/App_Data/userlogs.xml");
{
XDocument doc = XDocument.Load(Server.MapPath("~/App_Data/userlogs.xml"));
XElement user = new XElement("user",
new XElement("fname", fname.Text.ToString()),
new XElement("lname", lname.Text.ToString()),
new XElement("dob", dob.Text.ToString()),
new XElement("uid", uid.Text.ToString()),
new XElement("pwd", pwd.Text.ToString()),
new XElement("email", email.Text.ToString()),
new XElement("lastlog", System.DateTime.Now.ToString())
);
doc.Root.Add(user);
doc.Save(Server.MapPath("~/App_Data/userlogs.xml"));
}
}