当前位置:编程学习 > C#/ASP.NET >>

用Asp.net实现基于XML的留言簿之二

答案:     四.代码:
  
  (1) guestpost.aspx:
  
  < %@ Page Language="C#" EnableSessionState="False" % >
  < %@ Import Namespace="System" % >
  < %@ Import Namespace="System.IO" % >
  < %@ Import Namespace="System.Data" % >
  < %-- 这些是本程序正常运用所必须的名字空间 --% >
  
  < html >
  < head >
  < title >欢迎来到我的留言簿< /title >
  < script Language="C#" runat="server" >
  ///< summary >
  /// 当提交(submit)按钮按下后,调要这个函数
  ///< /summary >
  public void Submit_Click(Object sender, EventArgs e)
  {
  //保存数据的XML文件的路径
  //如果你的路径和下面的不同,则请修改之
  string dataFile = "db/guest.xml" ;
  
  //运用一个Try-Catch块完成信息添加功能
  try{
  //仅当页面是有效的时候才处理它
  if(Page.IsValid){
  
  errmess.Text="" ;
  //以读的模式打开一个FileStream来访问数据库
  FileStream fin;
  fin= new FileStream(Server.MapPath(dataFile),FileMode.Open,
  FileAccess.Read,FileShare.ReadWrite);
  //建立一个数据库对象
  DataSet guestData = new DataSet();
  //仅从数据库读取XML Schema
  guestData.ReadXmlSchema(fin);
  fin.Close();
  //从数据集的Schema新建一个数据行
  DataRow newRow = guestData.Tables[0].NewRow();
  //用相应值填写数据行
  newRow["Name"]=Name.Text;
  newRow["Country"]=Country.Text;
  newRow["Email"]=Email.Text;
  newRow["Comments"]=Comments.Text;
  newRow["DateTime"]=DateTime.Now.ToString();
  //填写完毕,将数据行添加到数据集
  guestData.Tables[0].Rows.Add(newRow);
  //为数据库文件新建另一个写模式的FileStream,并保存文件
  FileStream fout ;
  fout = new FileStream(Server.MapPath(dataFile),FileMode.Open,
  FileAccess.Write,FileShare.ReadWrite);
  
  guestData.WriteXml(fout, XmlWriteMode.WriteSchema);
  fout.Close();
  //隐藏当前的面板
  formPanel.Visible=false;
  //显示带有感谢信息的面板
  thankPanel.Visible=true;
  }
  }
  catch (Exception edd)
  {
  //捕捉异常
  errmess.Text="写入XML文件出错,原因:"+edd.ToString() ;
  }
  }
  < /script >
  < LINK href=>
  < /head >
  < body >
  < %-- 包含一个头文件:header.inc --% >
  < !-- #Include File="header.inc" -- >
  < br >
  < h3 align="center" class="newsbody" >留言者信息< /h3 >
  < br >
  < asp:label id="errmess" text="" style="color:#FF0000" runat="server" / >
  < asp:Panel id=formPanel runat=server >
  < form runat="server" >
  < table border="0" width="80%" align="Center" >
  < tr >
  < td class="newsheading" >< b >请在我留言簿留下您宝贵的信息!!< /b >< /td >
  < td class="newsheading" > < /td >
  < /tr >
  < tr class="newsbody" >
  < td >姓名:< /td >
  < td >< asp:textbox text="" id="Name" runat="server" / >
  < asp:RequiredFieldValidator ControlToValidate=Name display=static
  runat=server >
  *< /asp:RequiredFieldValidator >< /td >< /tr >
  < tr class="newsbody" >< td >国家:< /td >
  < td >< asp:textbox text="" id="Country" runat="server"/ >
  < asp:RequiredFieldValidator ControlToValidate=Country display=static
  runat=server >
  *< /asp:RequiredFieldValidator >< /td > < /tr >
  < tr class="newsbody" >< td >E-Mail:< /td >
  < td >< asp:textbox test="" id="Email" runat="server"/ >
  < asp:RequiredFieldValidator ControlToValidate=Email display=static
  runat=server >
  *< /asp:RequiredFieldValidator >< asp:RegularExpressionValidator
  runat="server"
  ControlToValidate="Email"
  ValidationExpression="[\w-]+@([\w-]+\.)+[\w-]+"
  Display="Static"
  Font-Name="verdana" Font-Size="10pt" >
  请输入一个格式正确的Email地址!< /asp:RegularExpressionValidator >< /td >
  < /tr >< tr class="newsbody" >< td >留言:< /td >
  < td >< asp:Textbox textmode=multiline id="Comments" columns="25"
  rows="4" runat="server" / >< /td >< /tr >
  < tr class="newsbody" >
  < td colspan="2" >
  < asp:Button class="newsheading" id="write" Text="Submit"
  onClick="Submit_Click" runat="server"/ >< /td >< /tr >< /table >< /form >< /asp:Panel >
  
  < asp:Panel id=thankPanel visible=false runat=server >
  < p class="newsbody" align=center >< b >谢谢访问我的留言簿!< /b >
  < br >< a href=>请点击这里 < /a > 查看留言簿。
  < /p >
  < /asp:Panel >
  < !-- #Include File="footer.inc" -- >
  < /body >
  < /html >
  
  
  转自:动态网制作指南 www.knowsky.com
  

上一个:用Asp.net实现基于XML的留言簿之三
下一个:用Asp.net实现基于XML的留言簿之一

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,