仓酷云

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

[学习教程] ASP教程之使用ASP编写静态复兴表单

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:46:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件静态媒介:良多网页计划者大概都面对过如许一个成绩:计划一个表单让利用者输出以后,将利用者所输出的内容创建到数据库中,但是一但利用者输出的内容有分歧型态(数字字段却输出笔墨)的情形大概利用者所输出的内容不切合体系办理者的请求时,却没法提示利用者那里堕落以便让利用者从头填写表单,常人也许会利用扫瞄器的前进按钮回到表单页然后将填错的材料重填,可是假如到场数据库的程序与表单内容放在统一个程序以内的话,那利用者就没无机会回上一页重填材料了。年夜多半人一般是用Session办理这个成绩,但这又就带来了一个成绩:Session占体系资本很年夜!办理上述成绩有两种办法:一种是经由过程JavaScript利用前端把持,另外一种是经由过程ASP子程序来作服务器端把持。上面我就是先容的怎样利用经由过程ASP子程序来作服务器端把持来完成。在数据库的利用上也跟以往分歧,我这一次利用的是SQL7.0为人人作先容,上面程序所保持的数据库是SQL7.0中所内建的Pubs数据库,利用者不用从头创建,只需将预存程序创建在Pubs数据库上便可。
附注:上面的程序是我在为一个超市计划网页时编写的,因为这里次要是先容编写技能,以是我不再举行编整,不外读者能够依据必要对内里的内容举行修正。
BookStore.asp
<%@TRANSACTION=RequiredLANGUAGE="VBScript"%>
<%Response.Buffer=True%>
<!--#includefile=adovbs.inc-->
<%
注解:创建数据库保持:
SETConn=Server.CreateObject("ADODB.Connection")
注解:使用数据库保持的ConnectionString属性指定欲保持的数据库信息,在这里我们将数据库驱动程序设为SQLServer,数据库服务器称号为Jackal,数据库为Pubs数据库:
Conn.ConnectionString="driver={SQLServer}"&_
";SERVER=Jackal;UID=sa;PWD=;DATABASE=pubs"
注解:以open办法开启数据库:
Conn.Open
注解:创建Command工具;以ActiveConnection属性来保持数据库保持工具Conn:
SetCmd=Server.CreateObject("ADODB.Command")
Cmd.ActiveConnection=Conn
注解:创建材料汇合工具;SETrsForm=Server.CreateObject("ADODB.RecordSet"),界说strFeedBack,strTitle字符串变量,分离代表表单毛病信息和数据库毛病信息:
DIMstrFeedBack,strTitle
注解:界说表单变量:
DIMstor_id,stor_name,stor_address,city,state,zip
%>
<html>
<head>
<scriptRUNAT="Server"LANGUAGE="VBScript">
上面就要编写RetrieveForm子程序了,其感化是吸收由表单所供应的材料:
SUBRetrieveForm(stor_id)
注解:搭配Cmd.ActiveConnection=Conn利用,并将commamndtype属性设定为adCmdStoredProc,暗示commandtext为预存程序:
Cmd.CommandType=adCmdStoredProc
Cmd.CommandText="proc_retrieve_store"
注解:以Parameters.Append的办法到场一个参数"stor_id"以作为预存程序的输出参数之用:
Cmd.Parameters.Appendcmd.CreateParameter("stor_id",adChar,adParamInput,4,stor_id)
注解:实行预存程序:
SETrsForm=Cmd.Execute
注解:删除stor_id参数:
Cmd.Parameters.Delete(0)
ENDSUB
完成上一步骤,下一步就是编写SetFromForm子程序,其感化是将利用者之前所输出的表单值回写至表单:
SUBSetFromForm
注解:掏出表单中各字段值并传给指定变量:
stor_id=Request.Form("stor_id")
stor_name=Request.Form("stor_name")
stor_address=Request.Form("stor_address")
city=Request.Form("city")
state=Request.Form("state")
zip=Request.Form("zip")
ENDSUB
(注解:从材料汇合工具中将值掏出并显现在表单中,strName代表表单称号,intSize代表表单巨细,intMax代表表单所同意输出最年夜字段长度,Server.HTMLEncode(strValue)代表表单内容。)
SubShowText(strName,strValue,intSize,intMax)
Response.Write"<INPUTTYPE=TextNAME="&strName&_
"ID="&strName&_
"onFocus=select()"&_
"SIZE="&intSize&_
"MAXLENGTH="&intMax&_
"VALUE="&chr(34)&Server.HTMLEncode(strValue)&chr(34)&">"
EndSub
上面是EditForm子程序,其感化是更新数据区段:
FunctionEditForm()
注解:界说毛病信息字符串变量:
DIMstrErr
strErr=""
IFNOTLen(Request("stor_id"))>0THEN
strErr=strErr&"请输出编号.<BR>"
ENDIF
IFNOTLen(Request("stor_name"))>0THEN
strErr=strErr&"请输出称号.<BR>"
ENDIF
IFNOTLen(Request("stor_address"))>0THEN
strErr=strErr&"请输出地点.<BR>"
ENDIF
IFNOTLen(Request("city"))>0THEN
strErr=strErr&"请输出乡村名.<BR>"
ENDIF
IFNOTLen(Request("state"))>0THEN
strErr=strErr&"请输出省名.<BR>"
ENDIF
注解:将表单毛病信息传回EditForm:
EditForm=strErr
EndFunction
上面是InsertForm子程序:
FunctionInsertForm()
DIMstrSQL
strSQL="proc_insert_store"
注解:以Command工具的CommandText属性指定对数据库下达的命令是经由过程proc_insert_store这个预存程序来完成:
Cmd.CommandText=strSQL
注解:以Command工具的CommandType属性决意对数据库哀求的型态是为预存程序:
Cmd.CommandType=adCmdStoredProc
注解:呼唤SetParms子程序:
SetParms
注解:以Command工具的Execute办法实行预存程序:
Cmd.Execute
注解:将SetParms子程序中所附加的msg参数传回给strMsg毛病信息字符串变量:
strMsg=cmd.Parameters("msg")
InsertForm=strMsg
EndFunction
接着是创建setparms子程序:
SubSetParms()
注解:以Command的Append办法将Parameter工具加到Parameters工具汇合中,作为预存程序的输出参数之用这是为了获得表单的内容值,只要在更新材料或到场材料时才必需呼唤这段子程序:
cmd.Parameters.Appendcmd.CreateParameter("RETURN_VALUE",adInteger,adParamReturnValue)
cmd.Parameters.Appendcmd.CreateParameter("id",adChar,adParamInput,4,stor_id)
cmd.Parameters.Appendcmd.CreateParameter("stor_name",adVarChar,adParamInput,40,stor_name)
cmd.Parameters.Appendcmd.CreateParameter("stor_address",adVarChar,adParamInput,40,stor_address)
cmd.Parameters.Appendcmd.CreateParameter("city",adVarChar,adParamInput,20,city)
cmd.Parameters.Appendcmd.CreateParameter("state",adChar,adParamInput,2,state)
cmd.Parameters.Appendcmd.CreateParameter("zip",adChar,adParamInput,5,zip)
cmd.Parameters.Appendcmd.CreateParameter("msg",adVarChar,adParamInput,60,"")
EndSub
上面是UpdateForm子程序:
FunctionUpdateForm(intID)
注解:以Command工具的CommandText属性指定对数据库下达的命令是经由过程pr</p>优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件
分手快乐 该用户已被删除
沙发
发表于 2015-1-20 11:45:14 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
变相怪杰 该用户已被删除
板凳
发表于 2015-1-26 23:51:07 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
活着的死人 该用户已被删除
地板
发表于 2015-2-3 12:02:37 来自手机 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-8 20:45:41 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
海妖 该用户已被删除
6#
发表于 2015-2-26 09:30:53 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
admin 该用户已被删除
7#
发表于 2015-3-8 13:15:37 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
若天明 该用户已被删除
8#
发表于 2015-3-15 23:58:25 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-22 18:08:21 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-29 18:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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