程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 用Asp.net實現基於XML的留言簿

用Asp.net實現基於XML的留言簿

編輯:關於ASP.NET

一.概要:

留言簿是網站的一個重要組成部分,是訪問者發表意見的場所,也是網站管理員了解網站基本情況的有力工具。所以留言簿在現在的網站中扮演了重要的角色。

可是在以前開發一個留言簿並不是一件容易的事,開發者的工作量往往會很多。而現在隨著微軟推出VS.net,相應的技術推陳出新。特別是XML在.net Framework中的廣泛運用,使得整個.net構架具有十分優越的基礎。在VS.net推出的同時,也伴隨而來了一門新興的語言C#。C#作為微軟.net戰略的重要部分,具有特別優秀的性能。所以本文的asp.net程序是用C#語言描述的,同時整個程序又是基於XML的。我用到了XML作為程序的數據庫,主要是因為所以的服務器都是支持XML文件的。

二.要求:

(1).Net SDK Beta2及以後版本

(2)支持Asp.net的Web服務器

三.說明:

本文的實例由兩部分組成:

(1)guestpost.aspx-將用戶信息添加到一個XML文件中

(2)viewguestbook.aspx-先建立一個數據集對象,建立後,就很容易顯示其中的數據了。我這裡用到了一個“Repeater”來顯示數據集中的數據。還有,讀者可試著根據自己的喜好來修改查看頁。

四.代碼:

(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 >

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved