ASP网页编程之ASP中数据库纪录的拔取与过滤
使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。数据|数据库1、申明年夜多半终极用户都请求他们的Web计划可以供应某种报表才能。利用HTML和ASP,能够很简单地供应在表格中列出纪录和逐条扫瞄它们的才能。但用户常常请求可以经由过程下拉列表框(或别的选择体例)选择某一种别的纪录,大概说,他们但愿可以利用某种“查询界面”来创建和实行查询,而不用间接利用SQL。本文演示使用ASP手艺创建可选择的纪录过滤界面的一种办法。固然这里会商的办理办法相称复杂,但利用相似的手艺能够在任何Web页面供应庞大的查询才能。
在为任何一个办理办法编码之前,都应当充实了解并纪录终极用户的需求。关于本例来讲,用户请求可以用指定种别名字的办法猎取指定表的一组纪录,他既能够选择一切的种别也能够选择某个特定的种别。为完成这个功效,我们利用一个“递回的”ASP页面,它所供应的选择表单中包括了来自数据库的种别列表,依据表单所发送的数据提取了局纪录集,了局纪录将以表格的情势显现以便利用户观察。
2、机关过滤前提
关于这类数据库使用,起首应当懂得所触及的数据库表布局和毗连数据库体系所必需的毗连参数。毗连参数的指定办法在Microsoft的ASP联机文档中有很具体的申明,本文不再赘述。本例要用到的两个表为:Document_Category,它包括供用户选择的独一的种别名字Category_Name;Documents,它包括对应于种别名字的别的数据,字段包含Category_Name、File_Name、Comments、Date_Submitted等。
选择表单中的种别列表来自于种别表Document_Category的Category_Name字段,机关种别下拉列表框的代码以下,请注重这里要用到VBScriptADO包括文件:
<!--#Includefile="ADOVBS.INC"-->
<%
ConnString="DSN=LocalUpload;"
Setconn=Server.CreateObject("ADODB.Connection")
conn.OpenConnString,,,adOpenForwardOnly
Setrs=SERVER.CreateObject("ADODB.Recordset")
起首猎取用来添补下拉列表框的种别纪录
设置SQL语句
strSQL="SELECT*FROMDocument_CategoryORDERBYcategory_name"
rs.OpenstrSQL,conn,adOpenStatic
%>
<FORMname="formCategory">
<SELECTNAME="qryCategory"
>
<OPTIONselected>请选择一个种别:
<%DoWhileNotrs.EOF
Response.Write("<OPTIONvalue="&rs("Category_Name")&">"_
&rs("Category_Name"))
rs.MoveNext
Loop
rs.Close
Setrs=Nothing
%>
</OPTION>
</SELECT><BR>
</FORM>
SELECT标志中的OnChange用来提交HTML表单。当下拉列表框的值改动,JavaScript函数getFilter就会实行。利用相似的办法,能够将数据库表的纪录用多个分歧表单位从来形貌(如第二个下拉列表框,单选按钮或复选框等等)。用户所选择的种别值将用来机关从数据库提取纪录的SQLSELECT语句。
3、提交表单
这里我们要用到两个JavaScript函数来完成表单信息提交义务。getFilter函数用来将用户选择的种别值提交给页面自己,而getListValue函数则用来猎取用户所选择的种别值。选用JavaScript完成这两个函数使得剧本可以在分歧的扫瞄器上运转:
<SCRIPTlanguage="JavaScript">
functiongetFilter(listitem){
varobject="";
varlistValue=getListValue(listitem);
document.formCategory.submit(listValue);
}
functiongetListValue(list){
varlistValue="";
if(list.selectedIndex!=-1){
listValue=list.options.value;
}
return(listValue);
}
</SCRIPT>
4、显现了局
最初要做的就是机关查询并显现查询了局了。起首,查询的机关依附于用户鄙人拉列表框中所选择的种别名字,这个查询只需一个复杂的SQLSELECT语句,在WHERE子句中指定用户所选择的种别便可。机关好查询以后就能够实行它了,假如没有切合请求的纪录,则向用户显现一个提醒信息;不然就显现这些纪录。上面是完成上述义务的VBSCript代码:
<%
IfRequest.QueryString("qryCategory")=""Then
Response.Write("请从列表当选择一个种别.")
Else
机关查询
Setrs=SERVER.CreateObject("ADODB.Recordset")
设置SQL语句
strSQL="SELECTDocuments.File_Name,Documents.Comments,"
strSQL=strSQL&"Documents.Date_Submitted"
strSQL=strSQL&"FROMDocuments"
strSQL=strSQL&"WHERE((Documents.Category_Name)="_&
Request.QueryString("qryCategory")&")"
翻开Recordset工具
rs.OpenstrSQL,conn,adOpenStatic
Ifrs.RecordCount=0Then无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的; 代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。 Session:这个存储跟客户端会话过程的数据,默认20分钟失效 在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。 他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。 完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。 我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。 我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。 我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
页:
[1]