一.概要
留言簿是网站的一个重要组成部分是访问者发表意见的场所也是网站管理员了解网站基本情况的有力工具所以留言簿在现在的网站中扮演了重要的角色
可是在以前开发一个留言簿并不是一件容易的事开发者的工作量往往会很多而现在随着微软推出相应的技术推陈出新特别是 Framework中的广泛运用使得整构架具有十分优越的基础在推出的同时也伴随而来了一门新兴的语言C#C#作为微战略的重要部分具有特别优秀的性能所以本文的程序是用C#语言描述的同时整个程序又是基于XML的我用到了XML作为程序的数据库主要是因为所以的服务器都是支持XML文件的
二.要求
() Net SDK Beta及以后版本
() 支持的Web服务器
三.说明
本文的实例由两部分组成
() guestpostaspx-将用户信息添加到一个XML文件中
() viewguestbookaspx-先建立一个数据集对象建立后就很容易显示其中的数据了我这里用到了一个Repeater来显示数据集中的数据还有读者可试着根据自己的喜好来修改查看页
四.代码
() guestpostaspx
< %@ Page Language=C# EnableSessionState=False % >
< %@ Import Namespace=System % >
< %@ Import Namespace=SystemIO % >
< %@ Import Namespace=SystemData % >
< % 这些是本程序正常运用所必须的名字空间 % >
< html >
< head >
< title >欢迎来到我的留言簿< /title >
< script Language=C# runat=server >
///< summary >
/// 当提交(submit)按钮按下后调要这个函数
///< /summary >
public void Submit_Click(Object sender EventArgs e)
{
//保存数据的XML文件的路径
//如果你的路径和下面的不同则请修改之
string dataFile = db/guestxml ;
//运用一个TryCatch块完成信息添加功能
try{
//仅当页面是有效的时候才处理它
if(PageIsValid){
errmessText= ;
//以读的模式打开一个FileStream来访问数据库
FileStream fin;
fin= new FileStream(ServerMapPath(dataFile)FileModeOpen
FileAccessReadFileShareReadWrite);
//建立一个数据库对象
DataSet guestData = new DataSet();
//仅从数据库读取XML Schema
guestDataReadXmlSchema(fin);
finClose();
//从数据集的Schema新建一个数据行
DataRow newRow = guestDataTables[]NewRow();
//用相应值填写数据行
newRow[Name]=NameText;
newRow[Country]=CountryText;
newRow[Email]=EmailText;
newRow[Comments]=CommentsText;
newRow[DateTime]=DateTimeNowToString();
//填写完毕将数据行添加到数据集
guestDataTables[]RowsAdd(newRow);
//为数据库文件新建另一个写模式的FileStream并保存文件
FileStream fout ;
fout = new FileStream(ServerMapPath(dataFile)FileModeOpen
FileAccessWriteFileShareReadWrite);
guestDataWriteXml(fout XmlWriteModeWriteSchema);
foutClose();
//隐藏当前的面板
formPanelVisible=false;
//显示带有感谢信息的面板
thankPanelVisible=true;
}
}
catch (Exception edd)
{
//捕捉异常
errmessText=写入XML文件出错原因+eddToString() ;
}
}
< /script >
< LINK type=text/css rel=stylesheet >
< /head >
() viewguestbookaspx
< %@ Page Language=C# % >
< %@ Import Namespace=System % >
< %@ Import Namespace=SystemIO % >
< %@ Import Namespace=SystemData % >
< % 以上是所需的名字空间 % >
< html >
< head >
< title >欢迎来到我的留言簿< /title >
< script language=C# runat=server >
//页面下载完毕后运行这个脚本
public void Page_Load(Object sender EventArgs e)
{
//包含所有数据的XML文件的路径
//如果你的路径和下面的不同则请修改
string datafile = db/guestxml ;
//运用一个TryCatch块完成信息读取功能
try
{
//建立一个数据集对象
DataSet guestData = new DataSet();
//为数据库文件打开一个FileStream
FileStream fin ;
fin = new FileStream(ServerMapPath(datafile)FileModeOpen
FileAccessReadFileShareReadWrite) ;
//把数据库中内容读到数据集中
guestDataReadXml(fin);
finClose();
//将第一个表中的数据集付给Repeater
MyDataListDataSource = guestDataTables[]DefaultView;
MyDataListDataBind();
}
catch (Exception edd)
{
//捕捉异常
errmessText=不能从XML文件读入数据原因+eddToString() ;
}
}
< /script >
< LINK type=text/css rel=stylesheet >
< /head >
五.总结
这个程序完成了相信大家对实现原理以及技巧都有了大致的了解通过本文我主要是想向大家展示用XML处理一些数据库问题时的优点服务器都支持XML文件而且处理过程相当简洁明了当然用XML也有它的不足之处就是当数据库很大时解析过程会花费相当长的时间因此还是要采用大型的数据库系统的所以我只想通过此文起到抛砖引玉的作用