仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 997|回复: 13
打印 上一主题 下一主题

[学习教程] ASP网页编程之利用表单汇合创建SQL语句2

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:16:39 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
对于中小型web应用来说,php有很强的竞争力,linux+apache+mysql+php(lamp)的组合几乎可以胜任绝大多数网站的解决方案,对于大型应用来讲,对于系统架构要求更高,需要有成熟的框架支持,jsp的struts是个不错的框架,国内介绍它的资料也非常多,应用逐渐广泛起来。asp就不用说了,汇合|语句更复杂的办法


因而可知,我们必要一种复杂的办法,可以依据任何表单创建SQL语句,而不论表单中有几字段,也不论字段范例怎样。要做到这点,我们要使用ASP内置的request.form汇合。经由在这个汇合中轮回,我们可以把每一个表单字段的称号和它的值一同提掏出来。列表B是这类事情体例的一个复杂版本。在您检察代码时,请注重:为了这个手艺可以失效,我们的HTML字段名必需与数据库表中的字段名不异。
列表B:利用request.form来轻松创建SQL字符串。

<%
iStr="insertintouData"
vStr="values("
nStr="("

在表单汇合中轮回,并创建起SQL语句的构成部分
foreachxinrequest.form
创建字段名列表
nStr=nStr&x&","
创建字段值列表
ifuCase(x)="AGE"then
vStr=vStr&request.form(x)&","
else
vStr=vStr&""&request.form(x)&","
endif
next

把开头的","从我们创建的字符串中往失落
vStr=left(vStr,len(vStr)-2)&")"
nStr=left(nStr,len(nStr)-2)&")"

把SQL语句组装起来
iStr=iStr&nStr&vStr

iftrim(request("fName"))>>""then
response.write(iStr&">BR>")
else
%>

<html>
<body>
<formname=fmethod=postaction="列表2.asp">
Gimmeyour:<br>
FirstName:<inputtype=textname="fName"><br>
LastName:<inputtype=textname="lName"><br>
Age:<inputtype=textname="age"><br>
<inputtype="submit"value="Submit">
</form>
</body>
</html>

<%
endif
%>

您大概注重的第一件事是,这段代码要比第一段示例中的代码长一点。可是,请记着,这段代码可以处置任何数目的字段。因而,关于年夜的表单,利用这类手艺十分无效。

您应该注重的第二件事是:我们仍旧必需晓得一个字段-age字段的称号和范例。因而,我们必要一个办法,把字段范例告知ASP代码,如许才干创建符合的SQL语句。

我们在这里利用的办理计划是:把数据范例嵌进到每一个HTML字段名里。比方,数值型字段的称号以字符串num_入手下手。如许,要把age字段名改成num_age。(字符型和文本型字段不必更名,如许会缺省地把它们放在括号中。)列表C显现了这个办理计划的实践使用。

列表C:把字段范例嵌进到HTML字段名中。


<%functionbuildSQLInsert(targetTable)
iStr="insertinto"&targetTable&""
vStr="values("nStr="("
在表单汇合中轮回,并创建起SQL语句的构成部分
foreachxinrequest.form
fieldName=x
fieldData=replace(request.form(fieldName),"","")
typeDelimPos=inStr(fieldName,"_")
iftypeDelimPos=0then
Itsatextfield
创建字段名列表
nStr=nStr&fieldName&","
vStr=vStr&""&fieldData&","
else
是别的一种数据范例
fieldType=left(fieldName,typeDelimPos-1)
fieldName=mid(fieldName,typeDelimPos+1)
把字段名到场字段名列表中
nStr=nStr&fieldName&","
把字段范例酿成年夜写,以确保婚配
selectcaseuCase(fieldType)
case"NUM"
vStr=vStr&fieldData&","
把不明范例按文本型处置
caseelse
vStr=vStr&""&fieldData&","
endselect
endif
next

把开头的","从我们创建的字符串中往失落
vStr=left(vStr,len(vStr)-2)&")"
nStr=left(nStr,len(nStr)-2)&")"

把SQL语句组装起来
buildSQLInsert=iStr&nStr&vStr
endfunction


iftrim(request("fName"))><""then
response.write(buildSQLInsert&">BR<")
else
%>

<html>
<body>
<formname=fmethod=postaction="listing3.asp">
Gimmeyour:<br>
FirstName:<inputtype=textname="fName"><br>
LastName:<inputtype=textname="lName"><br>
Age:<inputtype=textname="num_age"><br>
<inputtype="submit"value="Submit">
</form>
</body>
</html>

<%
endif
%>


在这里,我们利用了来自列表B的部分代码,并把它们放在一个叫做buildSQLInsert的函数中。在设置完一时变量后,我们进进轮回,处置的几与之前做的一样。次要的区分是,每次进进轮回,我们要在字段称号中查找下划线(_)。假如找到下划</p>只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-22 17:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表