当前位置: 首页 > 图文教程 > 网络编程 > ASP > WAP中的ASP技术(四)

ASP
一个ASP版的图片浏览管理器
无组件上传图片至SQLSERVER数据库
利用Jmail.Message发送邮件
用Web页面执行客户端程序
多图片上传到指定的目录并存到数据库
dreamweaverMX通用分页代码研究
下拉菜单输入,根据输入内容自动定位
中文的无组件文件上传ASP函数
一个利用adsi得到局域网信息的asp文件
根据需要动态include不同的文件
让自定义文件下载支持断点续传
用数组实现数据记录的批量录入方法
上传的进度条 实时反映上传情况
用ASP动态生成javascript的表单验证代码
ASP 编程中20个非常有用的例子
ASP生成Word文档的又一方法
用asp解析图片地址,并将其保存。
利用ASP的文件操作实现用户管理
创建 Visual Basic COM 组件在 ASP 中使用
调试 ASP 中使用的 Visual Basic COM 组件

WAP中的ASP技术(四)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 97 ::
收藏到网摘: n/a

  选择电影院和上映时间

这部分代码让用户来选择看什么时间的电影,所有的记录根据前一页所选的电影来决定。在这里来选择电影院和上映时间.

movie_id = Request("movie")

sqlQuery = "SELECT title FROM movie WHERE Movie_id = " & movie_id

set rsMovie = conn.Execute(sqlQuery)

movie_title = rsMovie("title")

:

sqlQuery = "SELECT [name], [time], [show_id] FROM Show, Theater " &_

"WHERE show.movie_id = " & movie_id &_

" AND theater.theater_id = show.theater_id"

set rsShows = conn.Execute(SQLquery)

如果你仔细研究了这个代码,你就会想用Session来保存电影信息,再在这页进行查询更简单。同样很不幸,Session是需要
cookies的支持,虽说在WAP规范中也是被支持的,但是在Nokia 7110中也是不被支持,这就是说现在我们还不能把session用在WAP
服务中。

下面有一些有趣的事情:

<select name='show'>

<%

Do while not rsShows.eof

response.write("<option value='" & rsShows("show_id") & "'>" & Left(rsShows("name"),cutter) & " (" &
rsShows("time") & ")" & "</option>" &vbcrlf)

rsShows.MoveNext

loop %>

</select>

如果你对cutter变量感到疑惑,那么就有一些事让你哭笑不得

Dim cutter

if InStr(Request.ServerVariables("HTTP_USER_AGENT"), "Nokia7110") then

cutter = 12

else

cutter = 7

end if

这段代码根据不同的设备来显示选项。我们有充足的理由的这样做,Nokia Toolit 1.2仿真器喜欢把砍掉我的的选项到只有几个字
符,而我们要显示电影名字和上映时间,所以我们就不得不减少电影名字的字符。在真的手机中不会出现这种问题,所以我们就必
须先判断设备的类型.

一旦我有机会(飞刀我很穷,没有钱,这是仅仅是遥远的梦想.......)在真的Nokia 7110上测试我的代码,我们会立即感到我们
有比我们想像更大的屏幕。实际上,有些电影院的名字很古怪,而且这些长名字会占用很大屏幕空间,我们没有必要浪费这些显示空
间,尽量把这些名字简化。



下一步就是让用户选择需要的票数.这部分的代码很像其它的部分。我将从数据库中查询相同的数据,因为Session不能在真正的
WAP手机中使用,所以我必须对有些内容进行确认,看看是否还有座位出售.

SQLquery = "SELECT * FROM show WHERE Show_id = " & show_id

set rsShow = conn.Execute(SQLquery)

:

seats = rsShow("free_seats")

:

if seats = 0 then

Response.write("Sorry, no more seats")

rsShow.close

set rsShow = nothing

Response.write("</p></card></wml>")

Response.end

else

if seats > 6 then 'book up to 6 tickets or max available

max_seats=6

else

max_seats = seats

end if

end if

%>

<%=movie_title%> at <% =theater_name%>

<select name='ticket'>

<%

dim i

i = 1

Do while i <= max_seats

response.write("<option value='" & i & "'>" & i & " ticket(s)" & "</option>" &vbcrlf)

i = i + 1

loop %>

</select>

储存票数

现在我们已经有了所有需要的数据了,我们得把它们保存起来:

tickets = Request("ticket")

:

free_seats = rsShow("free_seats")

:

free_seats = free_seats - tickets

:

SQLUpdate = "UPDATE Show " &_

"SET Show.free_seats=" & free_seats & " " &_

" WHERE Show_ID=" & show_id

conn.Execute(SQLupdate)

SQLquery = "SELECT max([Booking_ID]) as bookingnumber FROM booking"

Set rsBooking = conn.execute(SQLquery)

maxbookid = rsBooking("bookingnumber") + 1


SQLinsert = "INSERT INTO Booking ( show_id, booked_seats ) " & _

"VALUES ('" & show_id & "', '" &a