WEB开发网
开发学院WEB开发ASP ASP入门基础教程-实例 网上图书管理系统 阅读

ASP入门基础教程-实例 网上图书管理系统

 2006-10-27 12:01:46 来源:WEB开发网   
核心提示: 1、从会员信息表中查询 ID等于session("UserID")记录中等级的值,并将其值赋给变量session("grade");2、从等级表中查找等级等于session("grade")变量的折扣率;3、从销售表中查找订单ID

1、从会员信息表中查询 ID等于session("UserID")记录中等级的值,并将其值赋给变量session("grade");

2、从等级表中查找等级等于session("grade")变量的折扣率;

3、从销售表中查找订单ID的最大值作为 MAXID 字段名输出;

4、从图书信息表中查找图书ID在变量session("checkBool")中有与其相匹配的图书记录;

5、自动产生订单号,它由四部分组成:年、月、日和先前的最大订单号的后五位加1;

6、计算图书应付金额,它等于单价*数量*折扣率;

7、往销售表中插入一条记录;

8、从“销售量”表中查询图书ID等于bookID变量的图书记录,如果记录指针到了记录的尾部,则向记录集中插入一条记录,否则,更改原有的图书ID相等的图书数量值;

9、更改会员信息表中ID等于parID会员的总金额;

10、自动更新会员等级;

11、提交本次消费金额和应付金额。

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/conn.asp" -->
<%
'创建一个记录集对象。
Set rs_grade = Server.CreateObject("ADODB.Recordset")
'***从会员信息表中查询 ID等于session("UserID")记录中等级的值。
'Replace函数可以用来对给定字符串中的指定部分进行规定次的替换。
sql_grade= "SELECT grade FROM DB_Member WHERE ID = '" +_
Replace(session("UserID"), "'", "''") + "'"
rs_grade=conn.execute(sql_grade)
'将用户等级变量清空。
session("grade")=""
'将会员信息表中的相应会员的等级值赋给变量session("grade")
session("grade")=Replace(rs_grade("grade"), "'", "''")
Set rs_rebate = Server.CreateObject("ADODB.Recordset")
'***从等级表中查找等级等于session("grade")变量的折扣率。
sql_rebate= "SELECT rebate FROM DB_rebate WHERE grade = '" +_
session("grade") + "'"
rs_rebate.open sql_rebate,conn,3
%>
<%
set rs_max= Server.CreateObject("ADODB.RecordSet")
'***从销售表中查找订单ID的最大值作为 MAXID 字段名输出。
sql_max="select MAX(OrderID) AS MAXID from DB_sell"
rs_max=conn.execute(sql_max)
%>
<%
'***从图书信息表中查找图书ID在变量session("checkBool")中有与其相匹配的图书记录。
sql = "Select * From DB_bookinfo Where BookID In (" & session("checkBook") & ")"
Set rs_C = conn.Execute( sql )
%>
<!--开始自动产生订单号,它由四部分组成:年、月、日和先前的最大订单号的后五位加1。-->
<% no=trim(rs_max("MaxID"))
if len(month(date()))=1 then
cmonth="0"& cstr(month(date()))
else
cmonth=cstr(month(date()))
end if
if len(day(date()))=1 then
cday="0"& cstr(day(date()))
else
cday=cstr(day(date()))
end if
select case len(int(Right(no,5)+1))
case 1
cno="0000"+Cstr(int(Right(no,5)+1))
case 2
cno="000"+Cstr(int(Right(no,5)+1))
case 3
cno="00"+Cstr(int(Right(no,5)+1))
case 4
cno="0"+Cstr(int(Right(no,5)+1))
case 5
cno=Cstr(int(Right(no,5)+1))
case Else
cno="00001"
end select
intno=cStr(Year(Date()))& cmonth& cday&cno
'自动产生订单号结束。
%>
<%
ASL=""
ASL=split(session("sl"),",") '此数组用来存储所选图书的数量。
i=0
sum=0
shuliang=0
'开始计算所购图书总金额、往“销售”表中插入一条记录和往“销售量”表插入一条记录或更改相应的记录。
while not rs_C.eof
bookID=rs_C("BookID")
bookName=rs_C("BookName")
price=rs_C("price")
paSL=cInt(ASL(i))
sum_1=sum_1+rs_C("price")*ASL(i)
'图书金额等于单价*数量*折扣率
booksum=rs_C("price")*ASL(i)*CSng(left(rs_rebate("rebate"),len(rs_rebate("rebate"))-1))/10
sum=sum+booksum
'left(rs_rebate("rebate"),len(rs_rebate("rebate"))-1)这一部分是把从记录集取出的折扣率的值(字符串),再从中取出其长度减1的字符串,这时得到的值就去掉了最后的“折”字。
oDate=now()
parID=Session("UserID")
'往销售表中插入一条记录。
sql_Ins="insert into DB_sell(OrderID,BookID,BookName,Price,bnumber,sum,HYID,OrderDate)"&_
"values('"&intno&"','"&bookID&"','"&bookName&"',"&price&","&paSL&","&booksum&_
",'"&parID&"',#"&oDate&"#)"
conn.execute sql_Ins
'***从“销售量”表中查询图书ID等于bookID变量的图书记录。
sql_update="select * from DB_sellsum where BookID='"&bookID&"'"
set rs_update=conn.execute (sql_update)
if rs_update.eof then
'如果记录指针到了记录的尾部,则向记录集中插入一条记录。
sql_num="insert into DB_sellsum(BookID,BookName,bnumber) values('"&bookID&_
"','"&bookName&"',"&paSL&")"
conn.execute sql_num
else
'否则,更改原有的图书ID相等的图书数量值。
sql_num="update DB_sellsum set bnumber=bnumber+"&paSL&" where BookID='"&bookID&"'"
conn.execute sql_num
end if
i=i+1
rs_C.movenext
wend %>
<!--********结束**********-->
<%
'***更改会员信息表中ID等于parID会员的总金额。
sql="update DB_member set amount=amount+ "&sum&" where ID= '"&parID&"'"
conn.execute sql
'开始自动更新会员等级
'***从会员信息表中查询ID等于parID会员的记录,并且只含等级和累计金额两个字段。
autosql="select grade,amount from DB_member where ID= '"&parID&"'"
set rs_auto=conn.execute (autosql)
samount=rs_auto("amount") '将字段中的累计金额值赋给变量samount。
'***从折扣率表中查询所有记录
sql_rebate="select* from DB_rebate"
set rs_rebateall=conn.execute (sql_rebate)
'将记录指针移动到第一帧。
rs_rebateall.movefirst
bz=0
while not rs_rebateall.eof
'如果记录指针没有到记录尾部,如果总金额大于记录集中的金额值,则将原等级加1赋给新等级。
if samount>rs_rebateall("sum") then
newgrade=rs_rebateall("grade")+1
bz=1
else
if bz=0 then newgrade=0
end if
rs_rebateall.movenext
wend
'等级最大到4
if newgrade>4 then newgrade=4
'更改会员信息表中的等级。
sql_newgrade="update DB_member set grade='"&newgrade&"' where ID= '"&parID&"'"
conn.execute sql_newgrade
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>收银台结账!</title>
<link href="style.css" rel="stylesheet">
<style type="text/css">
<!--
body {
background-image: url(images/bg1.jpg);
}
-->
</style></head>
<body leftmargin="0" topmargin="0">
<center>
<table width="640" height="133" border="0" cellpadding="-1" cellspacing="-1">
<tr>
<td background="images/bg.jpg"><img src=http://tech.ddvip.com/2006-10/"images/checkout.gif" width="640" height="130"></td>
</tr>
</table>
<table width="640" height="341" border="0" cellpadding="-1" cellspacing="-1">
<tr>
<td valign="top" background="images/bg.jpg"> <div align="center">
<form name="form1" method="POST">
<table width="97%" height="153" border="0" cellpadding="-1" cellspacing="-1">
<tr>
<td height="71">
<div align="center"><strong><font color="#C60001" size="3">
<!!--从折扣率记录表中取出折扣率作为优惠率-->
您本次购物享受<%=(rs_rebate.Fields.Item("rebate").Value)%>优惠!<br>
您本次消费金额为<%= sum_1%>元,实际应付费用<%=sum%>元。</font>
</strong> <strong><font color="#C60001" size="3"></font></strong></div></td>
</tr>
<tr>
<td><div align="center"><strong><font color="#C60001" size="3">
结账已经完成,欢迎下次惠顾!</font></strong></div></td>
</tr>
</table>
</form>
<a href="http://cms.ddvip.com/index.php#" onClick="JScript:window.close();"><img src=http://tech.ddvip.com/2006-10/"images/home1.gif"
width="75" height="34" border="0"></a></div></td>
</tr>
</table>
</center>
<!--CSng 函数 :返回表达式,该表达式已被转换为 Single 子类型的 Variant。-->
</body>
</html>
<%session.Abandon()%>

Checkout_fail.asp 收银台登录失败提示页面。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:ASP 入门 基础

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接