谁可相欹 发表于 2015-1-16 23:16:39

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:27

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

只想知道 发表于 2015-1-20 19:06:34

掌握asp的特性而且一定要知道为什么。

再现理想 发表于 2015-1-23 21:39:26

我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。

admin 发表于 2015-1-24 08:40:59

虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。

乐观 发表于 2015-1-24 15:26:01

那么,ASP.Net有哪些改进呢?

灵魂腐蚀 发表于 2015-1-27 15:40:03

ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。

飘飘悠悠 发表于 2015-1-30 09:46:42

哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?

爱飞 发表于 2015-1-30 16:46:04

交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。

柔情似水 发表于 2015-2-6 14:10:45

我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。

飘灵儿 发表于 2015-2-16 10:34:21

跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组

再见西城 发表于 2015-3-11 23:23:08

运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。

活着的死人 发表于 2015-3-19 16:04:06

Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件

简单生活 发表于 2015-3-28 22:30:17

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
页: [1]
查看完整版本: ASP网页编程之利用表单汇合创建SQL语句2