四.代码:
(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 >
