xml文件
<?xml version="1.0" encoding="gb2312" ?>
<Leave xmlns="http://tempuri.org/leave.xsd">
<List>
<Item>
<UserId>1</UserId>
<UserName>zhangsan</UserName>
<Email>[email protected]</Email>
<PostDate>2011-10-10 20:23:23</PostDate>
<Words>yes</Words>
</Item>
</List>
</Leave> webform1.aspx.cs中 "留言按钮"
protected void Submit_Button_Click(object sender, ImageClickEventArgs e)
{
int id;
DataSet data = new DataSet();
StreamReader sr = new StreamReader(Server.MapPath("leave.xml"));
StreamWriter sw;
DataTable dt = new DataTable();
DataRow dr;
string str;
str = sr.ReadLine();
data.ReadXml(sr);
sr.Close();
dt = data.Tables["leave"];
dr = dt.NewRow();
if (dt.Rows.Count == 0) id = 1;
else
id = dt.Rows.Count + 1;
dr["UserId"] = id;
dr["UserName"] = UserName.Text;
dr["Email"] = Email.Text;
dr["PostDate"] = DateTime.Now;
dr["Words"] = Words.Text;
dt.Rows.Add(dr);
sw = new StreamWriter(Server.MapPath("leave.xml"), false);
sw.WriteLine(str);
sw.Close();
sw = new StreamWriter(Server.MapPath("leave.xml"), true);
data.WriteXml(sw);
sw.Close();
UserName.Text = "";
Email.Text = "";
Words.Text = "";
Response.Write("\t\t留言已被保存"); }
webform2 中 窗体事件
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DataSet ds = new DataSet();
string file = Server.MapPath("leave.xml");
FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read);
ds.ReadXml(fs);
fs.Close();
Repeater1.DataSource = ds.Tables["leave"].DefaultView;
Repeater1.DataBind();
}
}
webform2.aspx
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<table border=0>
<tr><td>姓名:<%# DataBinder.Eval(Container,"DataItem.UserName") %>
</td></tr>
<tr><td>留言日期:<%# DataBinder.Eval(Container,"DataItem.PostDate")%>
</td></tr>
<tr><td>Email:<%# DataBinder.Eval(Container,"DataItem.Email") %>
</td></tr>
<tr><td>内容:<%# DataBinder.Eval(Container,"DataItem.Words") %>
</td></tr>
</table>
</ItemTemplate>
<separatortemplate>
<br>---------------------------------------------<br>
</separatottemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>错误1:“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 32: dt = data.Tables["leave"];
行 33:
行 34: dr = dt.NewRow(); //这行报错
行 35: if (dt.Rows.Count == 0) id = 1;
行 36: else
源文件: E:\program\Message\Message\WebForm1.aspx.cs 行: 34 堆栈跟踪:
[NullReferenceException: 未将对象引用设置到对象的实例。]
Message.WebForm1.Submit_Button_Click(Object sender, ImageClickEventArgs e) in E:\program\Message\Message\WebForm1.aspx.cs:34
System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e) +115
System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +120
System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563
错误2:“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 21: ds.ReadXml(fs);
行 22: fs.Close();
行 23: Repeater1.DataSource = ds.Tables["leave"].DefaultView;//这行报错
行 24: Repeater1.DataBind();
行 25: }
源文件: E:\program\留言板\留言板\WebForm2.aspx.cs 行: 23 堆栈跟踪:
[NullReferenceException: 未将对象引用设置到对象的实例。]
留言板.WebForm2.Page_Load(Object sender, EventArgs e) in E:\program\留言板\留言板\WebForm2.aspx.cs:23
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207
各位高手麻烦帮小弟解决下!!!!!!!谢了!
<?xml version="1.0" encoding="gb2312" ?>
<Leave xmlns="http://tempuri.org/leave.xsd">
<List>
<Item>
<UserId>1</UserId>
<UserName>zhangsan</UserName>
<Email>[email protected]</Email>
<PostDate>2011-10-10 20:23:23</PostDate>
<Words>yes</Words>
</Item>
</List>
</Leave> webform1.aspx.cs中 "留言按钮"
protected void Submit_Button_Click(object sender, ImageClickEventArgs e)
{
int id;
DataSet data = new DataSet();
StreamReader sr = new StreamReader(Server.MapPath("leave.xml"));
StreamWriter sw;
DataTable dt = new DataTable();
DataRow dr;
string str;
str = sr.ReadLine();
data.ReadXml(sr);
sr.Close();
dt = data.Tables["leave"];
dr = dt.NewRow();
if (dt.Rows.Count == 0) id = 1;
else
id = dt.Rows.Count + 1;
dr["UserId"] = id;
dr["UserName"] = UserName.Text;
dr["Email"] = Email.Text;
dr["PostDate"] = DateTime.Now;
dr["Words"] = Words.Text;
dt.Rows.Add(dr);
sw = new StreamWriter(Server.MapPath("leave.xml"), false);
sw.WriteLine(str);
sw.Close();
sw = new StreamWriter(Server.MapPath("leave.xml"), true);
data.WriteXml(sw);
sw.Close();
UserName.Text = "";
Email.Text = "";
Words.Text = "";
Response.Write("\t\t留言已被保存"); }
webform2 中 窗体事件
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DataSet ds = new DataSet();
string file = Server.MapPath("leave.xml");
FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read);
ds.ReadXml(fs);
fs.Close();
Repeater1.DataSource = ds.Tables["leave"].DefaultView;
Repeater1.DataBind();
}
}
webform2.aspx
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<table border=0>
<tr><td>姓名:<%# DataBinder.Eval(Container,"DataItem.UserName") %>
</td></tr>
<tr><td>留言日期:<%# DataBinder.Eval(Container,"DataItem.PostDate")%>
</td></tr>
<tr><td>Email:<%# DataBinder.Eval(Container,"DataItem.Email") %>
</td></tr>
<tr><td>内容:<%# DataBinder.Eval(Container,"DataItem.Words") %>
</td></tr>
</table>
</ItemTemplate>
<separatortemplate>
<br>---------------------------------------------<br>
</separatottemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>错误1:“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 32: dt = data.Tables["leave"];
行 33:
行 34: dr = dt.NewRow(); //这行报错
行 35: if (dt.Rows.Count == 0) id = 1;
行 36: else
源文件: E:\program\Message\Message\WebForm1.aspx.cs 行: 34 堆栈跟踪:
[NullReferenceException: 未将对象引用设置到对象的实例。]
Message.WebForm1.Submit_Button_Click(Object sender, ImageClickEventArgs e) in E:\program\Message\Message\WebForm1.aspx.cs:34
System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e) +115
System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +120
System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563
错误2:“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 21: ds.ReadXml(fs);
行 22: fs.Close();
行 23: Repeater1.DataSource = ds.Tables["leave"].DefaultView;//这行报错
行 24: Repeater1.DataBind();
行 25: }
源文件: E:\program\留言板\留言板\WebForm2.aspx.cs 行: 23 堆栈跟踪:
[NullReferenceException: 未将对象引用设置到对象的实例。]
留言板.WebForm2.Page_Load(Object sender, EventArgs e) in E:\program\留言板\留言板\WebForm2.aspx.cs:23
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207
各位高手麻烦帮小弟解决下!!!!!!!谢了!
解决方案 »
- 在asp.net中COOKIE过期的问题
- 字符编码问题,谁可以搞定的?
- 新开 AJAX 技术交流群,欢迎各路友人相聚交流,共同学习`````
- RadioButton的问题??
- ----100分求个解决SQL语句,想了一上午也没有想出来-----在线等
- 新闻采集,实际上就是用 正则表达式 从别人的网站提取 HTML 数据 ???
- datagrid布局问题?
- 用户 'zhezhe\ASPNET' 登录失败 怎么办?
- 关于MVC BeginForm()的使用方法
- 谁知道 Pstorec.dll。讲一下里面的函数用法,谢谢
- Dreamweaver+asp.net 制作网站
- 不显示删除回复显示所有回复显示星级回复显示得分回复 关于ASP.NET连接SQL2005的web.config配置问题,急,在线等[问题点数:100分,]
把dr = dt.NewRow(); 改成DataRow dr = new DataRow();
错误 1 “System.Data.DataRow.DataRow(System.Data.DataRowBuilder)”不可访问,因为它受保护级别限制
改成data.ReadXml(str)试试
DataSet data = new DataSet();
StreamReader sr = new StreamReader(Server.MapPath("~/leave.xml"));
DataTable dt = new DataTable();
string str = sr.ReadLine();
data.ReadXml(sr);
for (int i = 0; i < data.Tables.Count; i++)
{
Response.Write(data.Tables[i].TableName + "<br/>");
}
GridView1.DataSource = data.Tables[0];
GridView1.DataBind();
GridView2.DataSource = data.Tables[1];
GridView2.DataBind();
2:Repeater1.DataSource = ds.Tables["leave"].DefaultView;这行还是有错