仓酷云

标题: ASP网页编程之利用表单汇合创建SQL语句2 [打印本页]

作者: 谁可相欹    时间: 2015-1-16 23:16
标题: ASP网页编程之利用表单汇合创建SQL语句2
对于中小型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>只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天
作者: 莫相离    时间: 2015-1-20 08:50
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
作者: 只想知道    时间: 2015-1-20 19:06
掌握asp的特性而且一定要知道为什么。
作者: 再现理想    时间: 2015-1-23 21:39
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
作者: admin    时间: 2015-1-24 08:40
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
作者: 乐观    时间: 2015-1-24 15:26
那么,ASP.Net有哪些改进呢?
作者: 灵魂腐蚀    时间: 2015-1-27 15:40
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
作者: 飘飘悠悠    时间: 2015-1-30 09:46
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
作者: 爱飞    时间: 2015-1-30 16:46
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
作者: 柔情似水    时间: 2015-2-6 14:10
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
作者: 飘灵儿    时间: 2015-2-16 10:34
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
作者: 再见西城    时间: 2015-3-11 23:23
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
作者: 活着的死人    时间: 2015-3-19 16:04
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
作者: 简单生活    时间: 2015-3-28 22:30
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。




欢迎光临 仓酷云 (http://www.ckuyun.com/) Powered by Discuz! X3.2