ASP入门

 ·ASP可以使用两种脚本语言:
-VBScript
-JavaScript

·为网页声明使用的脚本语言:
JavaScript: <%@ language=JSscript %>
VBScript: <%@ language=VBSscript %>

=============================================================================
·VBScript一般放在与内的<%和%>之间;

·<%和%>为脚本代码定界符;

·代码的注释:
 多行注释:
 单行注释:

·VBScript只有一种数据类型:Variant,它会根据程序的上下文来
判断为数字类型或者字符串类型;
例如:
 字符串:i=“2232”
 数  字:i=1232

·声明变量:
Dim语句 Public语句 Private语句
Dim a,b
注意:直接使用没有声明的变量,叫隐式变量,弊端是程序出错,无法查找;

·变量根据声明位置,分为:过程级和脚本级;
在过程中声明的变量为过程级变量;
在过程以外声明的变量为脚本级变量,可以被多个过程调用。

=============================================================================
·JavaScript是面向对象的语句
特点:
-解释型语言
-基于对象
-开发环境简单,安全性高
-跨平台性

·JavaScript的写入方式与VBScript一样,放在<%和%>之间;

·JavaScript的声明一般采用Var;语句的末尾一般要用“;”隔开;
=============================================================================

·以下使用VBScript脚本语言来实现ASP:

·两种方法:
和html混合使用:<%和%>
 eg:<% Response.write now()%>
另一种:
 eg:

·ASP的注释,在<%和%>之间使用“'”;

·常量的定义:
使用Const语句,分为字符串型和数字型;

·通过代不代引号来区分其类型;
字符串型:const jy="asp学习
"
数字型:const jc=22
表示日期常量 书写在两个#之间:const rq=#2006-09-01#

·控制流程语句分为两大块:
-条件语句;
-循环语句;

·两种条件语句:
If...Then...Else语句
Select Case 变量
 case 判断
 ...
 case 判断
 ...
 ......
End Select语句
举例:
dim x
x=10

select case x
 case 1,3,5,7,9
  Response.Write "单数"
 case 2,4,6,8,10
  Response.Write "双数"
end select

·循环语句分为三种类型:
1、当条件不为假之前的时候重复执行语句;
2、当条件变为真之前重复执行语句;
3、按照指定的次数重复执行语句。

·四种循环语句:
1、Do...Loop 直到条件为True(真)时循环;
2、While...Wend 当条件为True(真)时循环;
3、For...Next指定循环次数,使用计数器重复运行语句;
4、For Each...Next 对于集合的每项或者数组中的每项,重复执行一组语句。

·Do...Loop:

-格式1:先判断While后面的条件是否为真,如果为真则执行以下的代码;
Do while 条件
 ……
Loop

-格式2:先至少执行一次循环体,然后再判断While后面的条件是不是为真;
Do
 ……
Loop While 条件

·For……Next格式:
For 变量=1 to N(总量) Step M(步长)
……
Next
-说明:For……Next可以指定语句运行的次数;

·For Each……Next
不是指定语句运行的次数,而是对于集合中的每项或者数组中的每个元素,重复
执行一次,这个语句对于不知道集合或者数组中具体数目的时候,非常有用;

=============================================================================
·过程:实现不同功能的代码模块;
在VBScript中分为两种:
1、Sub 没有返回值
2、Function 有返回值

·Sub 过程名(由调用过程传递的常数、变量或表达式)
 具体的代码
end sub

·function 过程名()
 
end function

·使用Call调用过程带括号,不用call时,函数不用括号;

·Function过程就是函数:
Function 过程名(由调用过程传递的常数、变量或表达式)
 具体的代码
end sub

·Function返回值由函数名返回;
例如:
Function test(a,b)
 test=a & b;
End Function 
使用它:result=test("hello ","bobo");

==============================================================================
·Response对象向浏览器输出数据:
-两种格式:

格式一:
<%Response.write 具体的代码,字符用引号,数字不用引号%>
eg: Response.write "当前系统时间:" & hour(now) & ":" & minute(now) & ":" & second(now) & "
"

格式二:
<%
=体的代码,字符用引号,数字不用引号
%>
eg:
<%="当前系统时间:" & hour(now) & ":" & minute(now) & ":" & second(now) & "
"
%>
!!注意:只有一个输出的时候才能直接使用格式二的情况;

·停止输出数据:
Response.End();
eg:执行到501就结束了,不再输出了!
for x=1 to 1000
 Response.write x
 Response.write "
"
 if x>500 then Response.End()
next

·页面重新定向:
Response.redirect(转入的网址)
eg:
Response.redirect("bb.asp")

·Response的数据集合Cookies:
 Cookies用于浏览器端存储用户的信息,例如帐号等;
要求:
Response.Cookies语句必须放在标志之前;
-例子:
--------------------------
<%@language=VBScript%>
<%
visitTime=request.cookies("visitTime")
response.cookies("visitTime")=now
%>




<%
response.write "上次访问时间:" & visitTime & "
"
response.write "本次访问时间:" & now()
%>

=========================================================================
·Request对象
可以把浏览器收集的信息发送给服务器;

=========================================================================
·Html中表单提交数据的方式:
-第一种用Get:
 需要用Request.QueryString获取;
 限制长度;
-第二种用Post:
 需要用Request.Form获取;
 不限制信息的长度;

例子一:post方法:


------------

<%Response.write Request.Form("name")%>

<%Response.write Request.Form("qqnumber")%>

<%Response.write Request.Form("phone")%>

例子二:get方法:
===================================================================
要提交的文件:index.asp


名称:

QQ号:

电话:



获取信息的文件:get.asp

<%Response.write Request.QueryString("name")%>

<%Response.write Request.QueryString("qqnumber")%>

<%Response.write Request.QueryString("phone")%>
=====================================================================

·数据库操作:
ASP中,用来存取数据库的对象统称ADO(Active Data Object),主要含有三中
对象:
Connection:负责打开或连接数据库;
Recordset:负责存取数据表;
Command:负责对数据库执行行动查询命令(SQL语句命令);

·读取数据库的流程:
第一步:设置驱动和数据库的路径;
第二步:创建Connection对象;
第三步:利用连接对象Conn的Open方法打开一个指定的数据库;

·连接数据库的驱动程序:
由驱动程序和数据源两种,建议使用驱动程序,比较方便;

·有以下几种驱动类型:
Microsoft.Jet.OLEDB.4.0 Mdb
Microsoft Access Driver Access
Microsoft dBase Driver Dbase
Microsoft Excel Driver Excel
Microsoft Visual FoxPro Driver Dbc
SQLOLEDB.1 SQL srver7.0

·在这里,我们使用:
第一步:设置驱动和数据库的路径;
Dim strConn
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test.mdb")
第二步:创建Connection对象;
set conn=Server.CreateObject("ADODB.Connection")
第三步:利用连接对象Conn的Open方法打开一个指定的数据库;
conn.open strConn

·存取数据表:
<%
 set rs=CreateObject("ADODB.Recordset")
 rs.open "select * from test",conn
 dim counts
 
%>
<%if rs.EOF and rs.BOF then
 response.write "暂时还没有文章"
else
  do Until rs.EOF
  response.write "
编号:" & rs("编号")
  response.write "
名称:" & rs("名称")
  response.write "
价格:" & rs("价格")
  response.write "


"
  rs.movenext
 loop
end if%>

<%rs.close
  set rs=nothing%>
===================================
·生成菜单:
index.asp
--------------
<%@language=VBScript%>

<%
Dim strConn
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test.mdb")
set conn=Server.CreateObject("ADODB.Connection")
conn.open strConn
%>





<%
 set rs=CreateObject("ADODB.Recordset")
 rs.open "select * from test",conn

%>

<%if rs.EOF and rs.BOF then
 response.write "暂时还没有文章"
else
  do Until rs.EOF
%>

"> <%=rs("名称")%> |

<%
 rs.movenext
 loop
end if%>

<%rs.close
  set rs=nothing%>



--------------------------------------------------------
get.asp
-------------
<%@language=VBScript%>

<%
Dim strConn
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test.mdb")
set conn=Server.CreateObject("ADODB.Connection")
conn.open strConn
%>




<%
 dim classid
 classid=Request.QueryString("classid")
 set rs=CreateObject("ADODB.Recordset")
 rs.open "select * from test where 编号=" & classid,conn
%>
您要的是:<%=rs("名称")%>吗?

返回
<%rs.close
  set rs=nothing%>


-----------------------------------------------------------------

·分页的制作:fenye.asp

·判断读取的页数,并指定每页显示记录数目:
rs.PageSize=2 '指示Recordset中一页所包含的记录数
pagecount=rs.PageCount '使用PageCount属性可确定Recordset对象中数据的页数
page=int(request("page"))
if page<=0 then page=1
if request("page")="" then page=1
rs.AbsolutePage=page '指定当前记录所在的页

·显示指定页:
<%
if rs.EOF and rs.BOF then
 response.write "暂时还没有文章"
else
 for i=1 to rs.PageSize
  response.write "编号:" & rs("编号")
  response.write "名称:" & rs("名称")
  response.write "价格:" & rs("价格")
  response.write "


"
  rs.movenext
 next
end if
%>

这里讲两种:
第一种:通过显示的页码来跳到指定页:
<%for i=1 to pagecount%>
<%=i%>
<%next%>

第一种完整代码:
----------------------------
<%@language=VBScript%>

<%
Dim strConn
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test.mdb")
set conn=Server.CreateObject("ADODB.Connection")
conn.open strConn
%>





<%
 set rs=CreateObject("ADODB.Recordset")
 rs.open "select * from test",conn,1,1

 rs.PageSize=3
 totalPage =rs.PageCount
 page=int(request("page"))
 if page<=0 then page=1
 if request("page")="" then page=1
 rs.AbsolutePage=page

 if rs.EOF and rs.BOF then
  response.write "暂时还没有文章"
 else
  for i=1 to rs.PageSize
   if rs.EOF then exit for
   response.write "编号:" & rs("编号")
   response.write "名称:" & rs("名称")
   response.write "价格:" & rs("价格")
   response.write "


"
   rs.movenext
  next
 end if
%>
<%for i=1 to totalPage%>
<%=i%>
<%next%>

<%

rs.close
  set rs=nothing%>



----------------------------
==============================
第二种:通过翻页来跳到指定页:
-------------------------
<%@language=VBScript%>

<%
Dim strConn
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test.mdb")
set conn=Server.CreateObject("ADODB.Connection")
conn.open strConn
%>





<%
 set rs=CreateObject("ADODB.Recordset")
 rs.open "select * from test",conn,1,1

 rs.PageSize=3
 totalPage =rs.PageCount
 page=int(request("page"))
 if page<=0 then page=1
 if request("page")="" then page=1
 rs.AbsolutePage=page

 if rs.EOF and rs.BOF then
  response.write "暂时还没有文章"
 else
  for i=1 to rs.PageSize
   if rs.EOF then exit for
   response.write "编号:" & rs("编号")
   response.write "名称:" & rs("名称")
   response.write "价格:" & rs("价格")
   response.write "


"
   rs.movenext
  next
 end if
%>



<%if page=1 and not page=totalpage then %>
第一页|上一页
下一页|
最后页

<%elseif page<>1 and not page=totalpage then%>
第一页|
上一页|
下一页|
最后页

<%elseif page=totalpage then%>
第一页|
上一页|
下一页|最后页
<%end if%>

<%

rs.close
  set rs=nothing%>



----------------------------------

·通过加载页面来是网站的页面更有条例:
把连接数据库的代码单独存方在conn.asp中
在要连接的页面中是

---------------------------------------

·动态加载图片:
index.asp
------------------
<%@language=VBScript%>

<%
Dim strConn
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test.mdb")
set conn=Server.CreateObject("ADODB.Connection")
conn.open strConn
%>





<%
 set rs=CreateObject("ADODB.Recordset")
 rs.open "select * from test",conn,1,1

%>



<%while(NOT rs.EOF)%>
">" width="80" height="80"/>
<%rs.movenext
wend%>

<%

rs.close
  set rs=nothing%>



------------------------------------

·get.asp
--------------------
<%@language=VBScript%>

<%
Dim strConn
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test.mdb")
set conn=Server.CreateObject("ADODB.Connection")
conn.open strConn
%>




<%
 dim classid
 classid=Request.QueryString("classid")
 set rs=CreateObject("ADODB.Recordset")
 rs.open "select * from test where 编号=" & classid,conn
%>
您要的是:<%=rs("名称")%>吗?

返回
<%rs.close
  set rs=nothing%>


=====================================================================================
End       22:24 2006-9-2

你可能感兴趣的:(ASP,asp,vbscript,microsoft,数据库,javascript,function)