• 用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="mystyle.css" type=text/css rel=stylesheet >
    < /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="viewguestbook.aspx" >请点击这里 < /a > 查看留言簿。
    < /p >
    < /asp:Panel >
    < !-- #Include File="footer.inc" -- >
    < /body >
    < /html >
  • 相关阅读:
    vue项目 安装
    处理XML的几种方式
    从URL中获取搜索关键字
    Azure VM 远程无法登陆问题(No Remote Desktop License)
    也谈[关于大型网站技术演进的思考--存储的瓶颈]
    UML类图
    Apache Spark探秘:三种分布式部署方式比较
    Standalone Debugging Tools for Windows (WinDbg)
    UML: CIM & PIM
    C# 延迟初始化
  • 原文地址:https://www.cnblogs.com/YrRoom/p/287515.html
Copyright © 2020-2023  润新知