基于ASP的通用条件查询模块的设计与实现

基于ASP的通用条件查询模块的设计与实现


2024年6月21日发(作者:)

维普资讯

第8卷第2期 

2008年6月 

南京工业职业技术学院学报 

Journal of Nanjing Institute of Industry Technology 

Vo1.8.No.2 

Jun.,2008 

文章编号:1671—4644(2008)02—0049—03 

基于ASP的通用条件查询模块的设计与实现 

张跃东 

(江苏省南京工程高等职业学校 电子工程系,江苏 南京

211135) 

要:以VBScript、JavaScript语言为基础.以教务管理系统查询功能为例,基于ASP设计并建立了一个通用的查询 

模块,为简化应用程序的编写提供了一种行之有效的方法。 

关键词:ASP;查询;SQI Server 

中图分类号:TP391.3 文献标识码:A 

过程,实现上述功能。 

Sub SearchField() 

Dim i,j,Sql 

SET Conn=Server.CreateObject(”ADODB.Connection”) 

Conn.Open”Server=127.0.0.1:Provider=sqloledb:Da— 

tabase=education;UID=sa;PWD=sa;” 

在大型的ASP项目中,查询是必不可少的功能之一。用 

户要求能够针对特定的字段进行查询,为此很多应用系统通 

过编写多个查询模块,以满足不同的查询要求。但是,如果 

在大型的ASP项目中这么做的话,不仅增加了工作量、影响 

开发进度,而且不能使系统模块化、代码复用,增加了系统维 

护难度” 。本文以教务管理系统查询功能为例,基于ASP设 

计并建立一个通用的查询模块,达到多种条件查询的目的, 

Set S=SeIverr.CreateObject(”ADODB.Recordset”) 

Sql=”select from teacher where 1<>l” 

大家可以借鉴在不同的语言环境下实现通用查询的方法。 

l 设计思路 

基于ASP设计并建立一个通用的查询模块所遵循的设 

计思路分如下几个步骤: 

rs.open sql,Conn,1,1 

j=rs.Fields.count 

For i=0 Io(j—1) 

Response.Write”<option Value=”&rs.Fields(i). 

Name&”>”&rs.Fieldsfi).Name&”</option>” 

Next 

rs.close 

(1)读取数据库表的架构信息。由于编写通用模块,本 

环节采用动态获取字段方法。为后面的操作提供依据 。 

(2)显示获取的字段名称,即把动态获取的字段名称显 

示出来,供用户选择使用。 

(3)选择查询字段(字段); 

(4)选择查询条件(<、>、= 

Not Null、Like); 

Conn.close 

Set rs=Nothing 

Set Conn=Nothing 

End Sub 

(5)输入条件值; 

(6)选择运算关系(Or、And); 

(7)将查询条件添加到列表框、或从列表框删除。 

(8)将查询条件作为参数传递给服务器端的应用程序, 

实现用户理想的查询表单。 

执行过程SearchField(),实现动态获取表的字段名称, 

并显示出来供用户选择使用,如图1所示。 

2 实现过程及主要源代码 

本文以SQL Server 2000中education数据库的teacher表 

为例,登录用户名:sa;登录口令:“sa”。 

2.1初始化数据库链接,获取数据表字段 

通过ADO对象实现对数据库操作。使用ADO的Con— 

nection、Command和Recordset,可以完成与数据库连接的建 

立,SQL语句的执行,实现把动态获取的字段名称显示出来, 

姓名 

供用户选择使用。下面利用vbscript定义一个SearchField() 

收稿日期:2008—01—21 

性别 

出生年月 

工作B--I ̄ 

教学时间 

最高学历 

最高学历取得时间 

最高学位 

最高学位取得时间 

一 

, 

图1 把表中的宇段名显示在列表中 

作者简介:张跃东(1972一),男,江苏启东人,江苏省南京工程高等职业学校讲师。 

维普资讯

50 南京工业职业技术学院学报 第8卷第2期 

2.2通用字段查询模块表单设计 

<input type=”button”Name=”search

ok”Value=”查 

根据目前网页中较传统的查询风格,本文将通用条件查 

询”onClick=”getVal()”> 

询模块的界面设计成如图2所示形式。 

.--_.--.__--・----.__

鳓>>I

J 

 

--_・_・___--_--_一

<<<嚣蟓I

 

 

图2通用查询表单 

该表单的主要代码及功能说明如下: 

(1)查询字段下拉列表可以通过代码<%Call Search— 

Field()%>调用SearchField()过程,实现动态获取表的字段 

名称并在列表中显示。 

(2)查询条件可以采用以下代码,提供各种关系运 

算符。 

<select Name:”Condition”style:”font—size:12px”> 

<oph’on Value=”:”>等于</option> 

<opti on Value:”>”>大于</option> 

<optio n Value=”>=”>大于等于</option> 

<opt’ton Value:”&It:”>小于</option> 

<opti on Value=”&It;=”>小于等于</option> 

<oph on Value=”≪>”>不等于</option> 

<opti on Value:”NULL”>为空</option> 

<oph‘on Value=”NOT NULL”>不为空</option> 

<oph on Value:”LIKE”>匹配</option> 

</select> 

(3)条件值的输入要注意数据类型。 

(4)关系运算符只需要“与”和“或”2种运算。 

<select Name=”Relation”style=”font—size:12px”>・ 

<option Value=”and”>并且</option> 

<option Value:”or”>或者</option> 

</select> 

(5)“添加”按钮通过调用AddSe()函数,把条件查询语 

句添加到<select>查询列表框。 

<input type=”button”Name=”AddSql”Value=”添加 

>>>”onClick=”AddSe()”> 

(6)“删除”按钮通过调用moveSe()函数,把选中的条 

件查询语句从<select>查询列表框中删除。 

<input type=”button”Name=”delSql”Value:”&lt: 

&It;<删除”onClick:”moveSe()”> 

(7)“查询”按钮通过调用getVal()函数,取得查询条 

件,并提交。 

2.3添加条件查询语句 

利用javascript定义一个AddSe()函数,把条件查询语句 

添加到<select>查询列表框。 

function AddSe(){ 

var val,vat

tmp,Sql,oAdd,TextType; 

var Field,Condition,TextVal,Relation; 

Field=frm

Search.Field.options[frm—Search.Field.se— 

lectedIndex].text; 

TexlVa1=” ’+frm

Search.TextVa1.vatHe+” ; 

Condition=frm

Search.Condition.options[frm—Search. 

Condition.selectedIndex].text; 

Relation:frm

Search.Relation.options[frm—Search.Rela— 

tion.selectedlndex].text; 

val

Field=frm

Search.Field.value; 

val=val Field+frm Search.Condition.value+Tex卜 

Type+frm

Search.Relation.value; 

Sql=Field+Condition+TextVal+Relation: 

oAdd:document.createElement(”option”) 

oAdd.value=val; 

oAdd.text:Sql: 

frm

Search,seSq1.add(oAdd); 

 }

2.4删除条件查询语句 

利用javascfipt定义一个moveSe()函数,把条件查询语 

句从<select>查询列表框中删除。 

function moveSe(){ 

for(i:1;i<frm_Search.seSq1.options.1ength;i++){ 

if(frm~Search.seSq1.options[i].selected){ 

frm

Search.seSq1.remove(frm—Search.seSq1.selectedln— 

dex) 

2.5取得查询条件 

利用javascript定义一个getVal()函数,取得查询条件, 

并提交。 

function getVal(){ . 

var gettxt,Setable; 

gettxt=…: 

var path=window.1ocation pathname;//取得页面链接 

和文件名 

var line=path.1astIndexOf(”/”);//取得最后一个/韵 

位置 

vra dot=path.indexOf(”.”);//取得第一个:的位置 

var Name=path.substring(1ine+1,dot);//取得文件名 

varfileName=Name+”.asp”: 

fnr(i=1;i<frm_Search.seSq1.options.1ength;i++){ 

gettxt=gettxt+””+frm

Search.seSq1.options[i]. 

维普资讯

第8卷第2期 张跃东:基于ASP的通用条件查询模块的设计与实现 51 

valHe;} 

可以获得如图3所示的查询结果。 

var valLeng=gettxt.1astlndexOf(””); 

gettxt=gettxt.substr(0,valLeng);//去掉条件子句的最 

后一个关系运算符 

//Setable=frm

Search.Setable.value; 

世涛男 1970.10 1994.08 1994.09本科 

知云男 1982 04 2005.08 2005 08本科 

金生男 1952.叭 1969.03 1976.08本科 

图3查询结果页面 

window.open(fileName+?gettxt= +gettxt,,_self々;// 

向当前页面传送查询条件子句 

frm

Search.getSq1.value=gettxt: 

本文通过讲述通用条件查询模块的关键技术及代码,使 

读者可以根据实际需要任意设置显示表单,以达到查询的要 

求。虽本程序还需要进一步完善,但主要说明ASP的通用条 

frm

Search.action=fileName: 

frm

} 

Search.submit(); 

件查询编程方法。相信此方法会给大家一些启发,以达到事 

半功倍的效果。 

参考文献: 

3系统架构设计 

整个查询模块分为两部分,服务器端采用Microsoft Win— 

dows 2000 Server,数据库服务器使用Microsotf SQI—Server 

2000,web服务器采用Microsoft Intemet Information Server。这 

三者的有机结合提供了强大的web访问能力和安全控制。 

客户端采用Inteacrt Explorer来访问服务器。 

[1]易昭湘.专家门诊——AsP开发答疑200问[M].北京: 

人民邮电出版社,2005. 

[2]杜成龙.ASP.NET实现通用查询方式[J].教育信息化, 

2005(7):77—78. 

4结束语 

根据查询需求在通用查询表单中设置查询条件后提交 

[3]柳运昌.基于通用模式的学籍管理系统的开发[J].平顶 

山工学院学报,2007(1):26—3O. 

Design and Application of General Query Module Based on ASP 

ZHANC Yue—dong 

(Na ng Engineering Vocational College,Nanjing 211135,China) 

Abstract:This paper,based on VBScfipt and JavaScript and exempliifed with the query service of Teaching Administration System,de— 

signs and realizes a general query module,which provides an effective approach for the simpliifcation of applied procedure writing. 

Key words:ASP;Query;SQL Severr 

(责任编辑周 源) 


发布者:admin,转转请注明出处:http://www.yc00.com/web/1718902199a2753417.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信