四.代碼:
(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="" 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 >