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