|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。比来想玩玩asp,吊唁一下,想到在asp里用javascript的剧本,js的一些器材仿佛对照风趣。实践上也就写了两个复杂的类,一个DbHelper,一个BusinessRules,分得不是那末明白。
DbHelper中实践上只要5个办法:
Open(connectionString);//翻开数据毗连。connectionString:数据库毗连字符串(可略,略则挪用类中指定的默许毗连字符串)。
Close();//封闭数据毗连。
ExecuteNonQuery(sql);//实行SQL语句,[前往受影响的行数](中括号中的内容没完成,仿佛有些成绩)。
ExecuteReader(sql);//前往一个数据纪录集,固然,是与数据源断开的。
ExecuteScaler(sql);//实行SQL语句,前往第一行第一列的数据。
BusinessRules也只要几个复杂的办法:
GetEntity(conditions);//依据指定的查询前提获得单个实体。
Insert(entity, identity);//将单个实体拔出数据库。identity:假如传进主键列名,则拔出数据后实体的主键属性会失掉数据库中对应的主键值。
Update(entity, conditions);//将单个实体更新到数据库,conditions:更新前提。
Delete(conditions);//按指定的前提删除数据。(参数略则删除全体数据)
GetList(num, conditions, sortOrder);//获得数据列表。num:指定命量,0暗示取切合前提的全体数据。conditions:查询前提,sortOrder:排序体例。(一切参数可略)
GetPageList(pageIndex, pageSize, conditions, sortOrder);//获得分页数据列表。conditions:查询前提(可为空),sortOrder:排序体例(必需)。
要用的时分间接就能够了。
怎样用呢:
假定我们有一个批评表Comment。
有以下字段:
ID:int,自增字段。
Title:nvarchar,题目。
Body:nvarchar,内容。
UserID:int,宣布批评的用户ID。
State:bit,形态。
CreateTime:DateTime,宣布工夫。
示例代码:
<@LANGUAGE="JAVASCRIPT"CODEPAGE="65001"%>
<%
varCommentBLL=newBusinessRules("Comment");//参数Comment是表名.
varentity=CommentBLL.GetEntity("id=1");//如许就失掉了一个ID为1的批评纪录了.
for(varxinentity)//打印出实体的一切属性和值.
{
Response.Write(x+":"+entity[x]+"<br>");
}
//固然js有良多种取值体例:
Response.Write("Title:"+entity.Title);//遗憾的是没有智能感知,怎样点也点不出属性来,呵呵.
Response.Write("UserID:"+entity["UserID"]);
//拔出:
varcomment={
Title:"JavascriptDemo",
Body:"Hello,Robot!",
UserID:1,
State:false,
CreateTime:newDate().toLocaleString()
}
if(CommentBLL.Insert(comment,"ID"))
{
Response.Write("success!"+comment.ID);//拔出数据后comment的ID就会失掉数据库中主动递增的值.
}
//更新:持续用下面的实体吧
with(comment)
{
ID=undefiend;//这个是主动递增的列,不克不及赋值,以是要删失落.
Title+="-->update";
State=true;
}
if(CommentBLL.Update(entity,"ID=1"))//假定要更新的ID为1.
{
Response.Write("success!");
}
//删除:
if(CommentBLL.Delete("ID=1"))//删除ID为1的批评.
{
Response.Write("success!");
}
//获得数据列表:
varlist=CommentBLL.GetList(0,"Bodylike%博客园%","CreateTimeDesc");//获得内容中包括"博客园"的数据列表.
for(varx=0;x<list.length;x++)//打印列表.
{
Response.Write(x+"-->"+"Title:"+list[x].Title+"<br>");
Response.Write(x+"-->"+"Body:"+list[x]["Body"]+"<br>");
}
//获得分页数据列表:
varpageList=CommentBLL.GetPageList(1,10,null,"CreateTimeDesc");//获得一切数据的第一页数据列表.
//这里前往的数据会比GetList前往的数据多一个RecordCount属性.
Response.Write("切合前提的纪录总数:"+pageList.RecordCount+"<br>");
//打印数据同上,略...
%>
只完成了一些复杂的功效,估量成绩也多多,只是乐趣来了任意写写,我对照火星,见得器材少,人人见责不要怪。呵呵。GetPageList用的是MSSQL2005里的Row_Number()来分页的,不克不及通用,mssql2k/access改一下就好了。
固然也能够弄得更壮大,好比弄几个类来映照数据表/字段等等,不外没工夫写那末多,偶然间拿来做个复杂的项目玩玩还能够。仍是有些吊唁asp的复杂,固然我asp对照菜。
ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。ApacheASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。 |
|