|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP脚本是采用明文(plaintext)方式来编写的。数据|数据库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[list.selectedIndex].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
Response.Write("没有发明指定种别的纪录"_&
Request.QueryString("qryCategory"))
Else
Response.Write("<H3>给定种别含以下纪录:"_&
Request.QueryString("qryCategory")&"</H3>")
在表格中显现查询了局
Response.Write("<TABLECELLSPACING=2COLS=3WIDTH=500>")
Response.Write("<TR>")
Response.Write("<TDALIGN=CENTERVALIGN=TOPWIDTH=20%")
Response.Write("BGCOLOR=#C8C8FF><B>称号</B></TD>")
Response.Write("<TDALIGN=CENTERVALIGN=TOPWIDTH=65%")
Response.Write("BGCOLOR=#C8C8FF><B>申明</B></TD>")
Response.Write("<TDALIGN=CENTERVALIGN=TOPWIDTH=15%")
Response.Write("BGCOLOR=#C8C8FF><B>日期</B></TD>")
Response.Write("</TR>")
DoWhileNotrs.EOF
Response.Write("<TR>")
Response.Write("<TD>"&rs("File_Name")&"</TD>")
Response.Write("<TD>"&rs("Comments")&"</TD>")
Response.Write("<TD>"&rs("Date_Submitted")&"</TD>")
Response.Write("</TR>")
rs.MoveNext
Loop
rs.Close
Response.Write("</TABLE>")
EndIf
EndIf
Setrs=Nothing
conn.Close
Setconn=Nothing
%>
固然本例中我们只用到了一个复杂的带WHERE子句的SQLSELECT,但用相似的办法能够机关出庞大的界面和查询,只需响应地增添用来指定前提的表单位素和依据用户选择了局机关符合SQL语句的剧本便可。
5、小结
ASP手艺为终极用户所请求的分歧数据查询界面供应了一个可伸缩的开辟情况。综合地使用剧本与HTML能够为观察和阐释数据机关出天真的界面,这些工具为依照用户需求过滤数据供应了一个复杂但高效的办法。</p>在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。 |
|