用Asp.net實現基於XML的留言簿
一.概要:
留言簿是網站的一個重要組成部分,是訪問者發表意見的場所,也是網站管理員瞭解網站基本情況的有力工具。所以留言簿在現在的網站中扮演了重要的角色。
可是在以前開發一個留言簿並不是一件容易的事,開發者的工作量往往會很多。而現在隨著微軟推出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 >
(2) viewguestbook.aspx:
< %@ Page Language="C#" % >
< %@ Import Namespace="System" % >
< %@ Import Namespace="System.IO" % >
< %@ Import Namespace="System.Data" % >
< %-- 以上是所需的名字空間 --% >
< html >
< head >
< title >歡迎來到我的留言簿< /title >
< script. language="C#" runat=server >
//頁面下載完畢後,執行這個指令碼
public void Page_Load(Object sender, EventArgs e)
{
//包含所有資料的XML檔案的路徑
//如果你的路徑和下面的不同,則請修改
string datafile = "db/guest.xml" ;
//運用一個Try-Catch塊完成資訊讀取功能
try
{
//建立一個資料集物件
DataSet guestData = new DataSet();
//為資料庫檔案開啟一個FileStream
FileStream fin ;
fin = new FileStream(Server.MapPath(datafile),FileMode.Open,
FileAccess.Read,FileShare.ReadWrite) ;
//把資料庫中內容讀到資料集中
guestData.ReadXml(fin);
fin.Close();
//將第一個表中的資料集付給Repeater
MyDataList.DataSource = guestData.Tables[0].DefaultView;
MyDataList.DataBind();
}
catch (Exception edd)
{
//捕捉異常
errmess.Text="不能從XML檔案讀入資料,原因:"+edd.ToString() ;
}
}
< /script. >
< LINK href="mystyle.css" type=text/css rel=stylesheet >
< /head >
五.總結:
這個程式完成了,相信大家對實現原理以及技巧都有了大致的瞭解。通過本文,我主要是想向大家展示用XML處理一些資料庫問題時的優點:伺服器都支援XML檔案,而且處理過程相當簡潔明瞭。當然,用XML也有它的不足之處,就是當資料庫很大時,解析過程會花費相當長的時間,因此還是要採用大型的資料庫系統的。所以,我只想通過此文起到拋磚引玉的作用。
留言簿是網站的一個重要組成部分,是訪問者發表意見的場所,也是網站管理員瞭解網站基本情況的有力工具。所以留言簿在現在的網站中扮演了重要的角色。
可是在以前開發一個留言簿並不是一件容易的事,開發者的工作量往往會很多。而現在隨著微軟推出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 >
(2) viewguestbook.aspx:
< %@ Page Language="C#" % >
< %@ Import Namespace="System" % >
< %@ Import Namespace="System.IO" % >
< %@ Import Namespace="System.Data" % >
< %-- 以上是所需的名字空間 --% >
< html >
< head >
< title >歡迎來到我的留言簿< /title >
< script. language="C#" runat=server >
//頁面下載完畢後,執行這個指令碼
public void Page_Load(Object sender, EventArgs e)
{
//包含所有資料的XML檔案的路徑
//如果你的路徑和下面的不同,則請修改
string datafile = "db/guest.xml" ;
//運用一個Try-Catch塊完成資訊讀取功能
try
{
//建立一個資料集物件
DataSet guestData = new DataSet();
//為資料庫檔案開啟一個FileStream
FileStream fin ;
fin = new FileStream(Server.MapPath(datafile),FileMode.Open,
FileAccess.Read,FileShare.ReadWrite) ;
//把資料庫中內容讀到資料集中
guestData.ReadXml(fin);
fin.Close();
//將第一個表中的資料集付給Repeater
MyDataList.DataSource = guestData.Tables[0].DefaultView;
MyDataList.DataBind();
}
catch (Exception edd)
{
//捕捉異常
errmess.Text="不能從XML檔案讀入資料,原因:"+edd.ToString() ;
}
}
< /script. >
< LINK href="mystyle.css" type=text/css rel=stylesheet >
< /head >
五.總結:
這個程式完成了,相信大家對實現原理以及技巧都有了大致的瞭解。通過本文,我主要是想向大家展示用XML處理一些資料庫問題時的優點:伺服器都支援XML檔案,而且處理過程相當簡潔明瞭。當然,用XML也有它的不足之處,就是當資料庫很大時,解析過程會花費相當長的時間,因此還是要採用大型的資料庫系統的。所以,我只想通過此文起到拋磚引玉的作用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-526848/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spring AOP基於xml的方式實現SpringXML
- 基於XML的購物車的實現(轉)XML
- 【mybatis xml】資料層框架應用--Mybatis 基於XML對映檔案實現資料的CRUDMyBatisXML框架
- 基於PaddleOCR實現AI發票識別的Asp.net Core應用AIASP.NET
- Android,java,xml,xml讀取與儲存,基於AndroidXML解析與儲存的實現AndroidJavaXML
- 基於"堆"的底層實現和應用
- 實現基於Nuxt.js的SSR應用UXJS
- 如何基於 Channel 實現多路複用
- 基於redis實現的鎖(用於控制nodejs的併發)RedisNodeJS
- asp.net mvc簡單實現基於Razor的分頁控制元件ASP.NETMVC控制元件
- 基於dojo實現mvc 模式下的ajax應用MVC模式
- 基於ChatGPT用AI實現自然對話ChatGPTAI
- 基於 Redis 實現分散式應用限流Redis分散式
- 基於socket用java實現telnet功能Java
- ASP.NET Core Authentication系列(四)基於Cookie實現多應用間單點登入(SSO)ASP.NETCookie
- Spring基於XML方式的使用SpringXML
- 基於jquery實現的ExceljQueryExcel
- 基於JVMTI的Agent實現JVM
- 用RMI實現基於Java的分散式計算(轉)Java分散式
- 用XML實現程式語言間的互譯 (轉)XML
- 基於ASP.NET MVC 4/5 Razor的模組化/外掛式架構實現ASP.NETMVC架構
- 在ASP.NET中如何用C#.NET實現基於表單的驗證ASP.NETC#
- MyBatis基於xml檔案的 CURD案例MyBatisXML
- 基於 DOM 的 XML 檔案解析類XML
- 自定義基於XML的驗證器XML
- 基於Masstransit實現Eventbus的功能
- 基於 SplPriorityQueue 實現的排序方法排序
- 基於Python的Akka實現Python
- 實現基於角色的授權
- java 語音用xml檔案實現圖形介面 xml檔案JavaXML
- 關於IDEA使用xml實現動態sql的問題IdeaXMLSQL
- Go實戰 | 基於本地記憶體的快取的應用及實現Go記憶體快取
- ASP.NET Core 中基於工廠的中介軟體啟用ASP.NET
- 用兩種方式實現基於源地址的策略路由(轉)路由
- Spring中基於XML方式的AOP操作SpringXML
- 基於Xml 的IOC 容器-準備文件物件XML物件
- 基於 XML Schema 的資料儲存方案XML
- 基於CMS的元件複用實踐元件