相关文章
网站制作网页制作总结CSS的小技巧
网页设计整站示例演示
北京网站建设渐飞网站管理系统快速入门
北京网页设计浅谈在网页上显示日期的两种方法
网站制作Dreamweaver方便快捷编辑网页标签
北京网页设计DW滤镜样式的语法规则
网站制作Dreamweaver MX 2004从零开始(2)
北京网站设计解决在Dreamweaver中不支持中文文件名的方法
网页设计自己动手制作活动菜单条
北京网站设计FLASH MX 2004视频教程:《火影忍者》片头制作(五)
品牌理念
北京网站建设最佳合作伙伴
北京网站建设专家企通互联
竭诚为您提供网站建设服务!
友好连接
文章搜索
你的位置:首页 >> 网站制作 >> 北京网页设计www.qitongnet.comDreamweaver实现客房预订业务系统
北京网页设计www.qitongnet.comDreamweaver实现客房预订业务系统
![]() |
效果说明
图 96-1 所示是预订业务的基本界面,用户可以直接登录或注册并预订客房。
创作构思
通过程序检测用户是否成功登录,登录错误的是否能够注册成功,并添加用户的预订资料。通过“ DataTime ”类下的“ Compare ”,将用户预订的时间与其他用户已预订的时间进行比较,以检测是否预订满。 北京网站制作
操作步骤
步骤一 设置应用程序的环境
( 1 )复制光盘中实例 96 的内容。将“光盘 \ 源文件 \ 实例 96 网页设计” 目录下的所有文件复制到“ C:\ Inetpub\wwwroot\ ”目录下。在 IIS 服务器中设置默认网站的主目录为“ C:\ Inetpub\wwwroot\hotel ”(可参考实例 1 中的相关方法)。在 Dreamweaver 中新建站点“ hotel ”,其站点目录为“ C:\ Inetpub\wwwroot\hotel ”,建立站点的方法可参照实例 2 。
( 2 )“ hotel.mdb ”结构。运行 Access ,打开“ C:\ Inetpub\wwwroot\adweb\data\hotel.mdb ”,可以看到数据库“ hotel.mdb ”中有“ tbOder ”、“ tbUser ”和“ tbRoom ” 3 个数据表。“ tbOder ”表用于存储用户订房的相关资料,该表的数据结构如图 96-2 所示。“ tbUser ”表用于存储用户的注册信息,该表的数据结构如图 96-3 所示。“ tbRoom ”表用于存储酒店各类客房的价格及相应的客房数,该表的数据结构如图 96-4 所示。数据库“ hotel.mdb ”中还有一个查询表“ UserOrder ”,该查询表在设计视图中的设置如图 96-5 所示。
( 3 )建立数据库链接“ ADconn ”,链接数据库“ C:\ Inetpub\wwwroot\adweb \data\hotel.mdb ”,方法可参考实例 75 。
( 1 )“ index.aspx ”页面结构。打开“ index.aspx ”,该页面是素材直接提供的,初始打开时如图 96-6 所示。图中①、②所示是图像而不是图像按钮,圆角方框①所示的图像其作用是添加“ OnClick ”动作以显示“ Layer1 ”层,该层中添加了一个日历控件,其 ID 为“ MyCalendar1 ”;圆角方框②所示图像的作用是添加“ 网站制作 OnClick ”动作以显示“ Layer2 ”层,该层中添加了一个日历控件,其 ID 为“ MyCalendar2 ”。
提示:“ index.aspx ”初始页面中其他控件的设置情况如表 96-1 所示。
表 96-1 “ index.aspx ”初始页面中其他控件的设置情况
|
控件对应文本 |
控件类型 |
控件 ID |
|
入住时间 |
asp :文本框 |
StartTime |
|
离店时间 |
asp :文本框 |
LastTime |
|
预订数量 |
asp :文本框 |
OrderNum |
|
会员 ID |
asp :文本框 |
UserID1 |
|
会员密码 |
asp :文本框 |
UserPass1 |
|
注册 ID |
asp :文本框 |
UserID |
|
真实姓名 |
asp :文本框 |
UseName |
|
登录密码 |
asp :文本框 |
UserPass |
|
重复密码 |
asp :文本框 |
UserPass2 |
|
电子邮件 |
asp :文本框 |
UserEmail |
|
联系电话 |
asp :文本框 |
UserTel |
|
【现在预订】按钮 |
asp :按钮 |
Orderbt |
|
【全部重置】按钮 |
表单按钮 |
Submit (其动作为重置表单) |
( 2 )添加数据集【 RoomData 】。在【服务器行为】面板中添加数据集【 RoomData 】,其在【数据集】对话框中的设置如图 96-7 所示。
( 3 )修改 SQL 命令。在【数据集】对话框中单击【高级】按钮,切换到【数据集】高级对话框,将 SQL 命令由 SELECT Pice,RoomID, RoomNum,RoomType FROM tbRoom 改为 SELECT Pice,RoomID, RoomNum, trim(RoomType)+chr(32)+cstr(Pice) As RoomType FROM tbRoom ,如图 96-8 所示。

( 5 )为页面添加“ System.Data ”、“ System.Data.OleDb ”、“ System.Globalization ”和“ System.Threading ” 4 个命名空间,如图 96-10 中圆角方框所示。
( 6 )定义页面载入过程“ Page_Load ”,该过程的代码如下所述。
Sub Page_Load(ByVal Src As Object, ByVal E As EventArgs) 网站制作
Dim i As Integer 北京网页设计
If Not Page.IsPostBack Then 北京网站制作
For i = 0 To RoomData.RecordCount - 1 企通互联
Dim str1, str2 As String 网页设计
str1 = RoomData.DefaultView(i).Row("RoomType") 企通互联
str2 = CStr(RoomData.DefaultView(i).Row("RoomID")) 北京网页设计
RoomRadio.Items.Add(New ListItem(str1, str2)) 北京网站建设 北京网页设计
Next www.qitongnet.com
End If 网站设计
End Sub
(读者可打开【光盘】|【源文件】|【实例 96 】|【 96.1.txt 】文件,直接复制)
程序说明:
该 “ Page_Load ”过程是在第一次载入页面时,为单选按钮列表“ RoomRadio ”添加列表项,添加列表项的标签值等于“ RoomData ”数据集下的字段“ RoomType ”,而选取值等于字段“ RoomID ”。
提示:也许有人会问为什么不直接用单选按钮列表的数据绑定呢?这由于通过 Dreamweaver 进行数据绑定,在程序中经常会出现无法获取单选按钮列表选取值的错误。
( 7 )定义“ MyCalendar1_SelectionChanged ”过程,用于响应日历控件“ MyCalendar1 ”的“ SelectionChanged ”事件,该过程的代码如下所述。
Protected Sub MyCalendar1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs)Handles MyCalendar1.SelectionChanged 北京网站设计
starttime.text = MyCalendar1.SelectedDate.ToShortDateString 网站制作
End Sub
(读者可打开【光盘】|【源文件】|【实例 96 】|【 96.2.txt 】文件,直接复制)
( 8 )定义“ MyCalendar2_SelectionChanged ”过程,用于响应日历控件“ MyCalendar2 ”的“ SelectionChanged ”事件,该过程的代码如下所述。
Protected Sub MyCalendar2_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs)Handles MyCalendar2.SelectionChanged 北京网站建设
lasttime.text= MyCalendar2.SelectedDate.ToShortDateString 网站建设
End Sub 网页设计
网站建设
www.qitongnet.com
步骤三 实现客户预订业务
( 1 )实现客户预订业务的程序流程如图 96-11 所示。
( 2 )为页面添加 4 个全局变量,如图 96-12 中圆角方框所示。

( 3 )定义“ Usercheck ”函数。该函数用于检测用户是否登录正确,登录不正确时是否注册成功,如果用户登录正确或者注册成功,则该函数返回“ True ”,否则将返回“ False ”,该函数的代码如下所述。
Function Usercheck() As Boolean 北京网站设计
Dim Hotelada1, Hotelada2 As OleDbDataAdapter 企通互联
Dim HotelDataSet1, HotelDataSet2 As System.Data.DataSet www.qitongnet.com
Dim Hoteldt1, Hoteldt2 As DataTable 企通互联
Dim tbRow As DataRow 企通互联
Dim yy As OleDbCommandBuilder 企通互联
Hotelstring = "Select * From tbUser Where UserId='" & UserID1.Text & "' And UserPass='" & UserPass1.Text & "'" 网页设计
Hotelada1 = New OleDbDataAdapter(Hotelstring, conn) 企通互联
HotelDataSet1 = New System.Data.DataSet 网站制作
Hotelada1.Fill(HotelDataSet1, "tbUser") 网站建设
Hoteldt1 = HotelDataSet1.Tables("tbUser") www.qitongnet.com
If Hoteldt1.Rows.Count > 0 Then 北京网站制作
strName = Hoteldt1.Rows(0)("UserId") 网站设计
Else 网站制作
If (Trim(UserID.Text) <> Nothing) And (Trim(UserPass.Text) <> Nothing) _ 网站建设
And (Trim(UserName.Text) <> Nothing) And (Trim(UserEmail.Text) <> Nothing) _ www.qitongnet.com
And (Trim(UserTel.Text) <> Nothing) Then www.qitongnet.com
Hotelstring = "Select * from tbUser" 北京网站制作
Hotelada2 = New OleDbDataAdapter(Hotelstring, conn) 网站设计
yy = New OleDbCommandBuilder(Hotelada2) 北京网页设计
HotelDataSet2 = New System.Data.DataSet 网站制作
Hotelada2.Fill(HotelDataSet2, "tbUser") 网站制作
Hoteldt2 = HotelDataSet2.Tables("tbUser") 企通互联
tbRow = Hoteldt2.NewRow 北京网站制作
tbRow("UserId") = UserID.Text 企通互联
tbRow("UserPass") = UserPass.Text 北京网站制作
tbRow("UserName") = UserName.Text网站制作
tbRow("UserEmail") = UserEmail.Text 网页设计
tbRow("UserTel") = UserTel.Text www.qitongnet.com
Hoteldt2.Rows.Add(tbRow) 北京网站设计
Hotelada2.Update(HotelDataSet2, "tbUser") 网站制作
strName = UserID.Text 北京网站设计
Else 网站设计
Usercheck = False 北京网站建设
Exit Function 企通互联
End If 北京网站制作
End If 网站制作
Usercheck = True 北京网站制作
End Function 北京网站制作
北京网站制作
( 4 )定义“ Roomcheck ”函数。该函数首先检测用户有没有选择预订客房类型,如果没有选择,则该函数返回“ False ”,接着在用户选择预订客房类型的情况下,检测所选择的客房类型在预订的时间段中是否已预订满,如果是,则返回“ False ”,否则将返回“ True ”,该函数的代码如下所述。
Function Roomcheck() As Boolean 网站制作
Dim Hotelada1, Hotelada2 As OleDbDataAdapter 企通互联
Dim HotelDataSet1, HotelDataSet2 As System.Data.DataSet 北京网站建设
Dim Hoteldt1, Hoteldt2 As DataTable 北京网站制作
Dim i, RoomI As Integer 北京网页设计
If RoomRadio.SelectedItem.Value <> Nothing Then 北京网页设计
Hotelstring = "Select * From UserOrder Where RoomID=" & RoomRadio.SelectedItem.Value 北京网页设计
Hotelada1 = New OleDbDataAdapter(Hotelstring, conn) www.qitongnet.com
HotelDataSet1 = New System.Data.DataSet 网站建设
Hotelada1.Fill(HotelDataSet1, "UserOrder") 网页设计
Hoteldt1 = HotelDataSet1.Tables("UserOrder") 北京网站设计
Dim Date1, Date2 As Date 北京网站建设
Date1 = StartTime.Text 北京网站制作
Date2 = LastTime.Text 网页设计
For i = 0 To Hoteldt1.Rows.Count - 1 网页设计
Dim roomdate1, roomdate2 As Date 北京网站制作
roomdate1 = Hoteldt1.Rows(i)("StartTime") 北京网站建设
roomdate2 = Hoteldt1.Rows(i)("LastTime") 北京网站建设
If (System.DateTime.Compare(Date1, roomdate1) And System.DateTime.Compare(roomdate2, Date1)) _ 网站设计
Or (System.DateTime.Compare(Date2, roomdate1) And System.DateTime.Compare(roomdate2, Date2)) _ 网站设计
Or (System.DateTime.Compare(roomdate1, Date1) And System.DateTime.Compare(Date2, roomdate2)) Then 北京网页设计
RoomI += 1 网页设计
End If 北京网站设计
Next 网页设计
Hotelstring = "select RoomNum From tbRoom where RoomID=" & RoomRadio.SelectedItem.Value 网站建设
Hotelada2 = New OleDbDataAdapter(Hotelstring, conn) 北京网站制作
HotelDataSet2 = New System.Data.DataSet 北京网页设计
Hotelada1.Fill(HotelDataSet2, "tbRoom") 网站设计
Hoteldt2 = HotelDataSet2.Tables("tbRoom") 北京网站制作
If RoomI +CInt(OrderNum.Text) > Hoteldt2.Rows(0)("RoomNum") Then 企通互联
Roomcheck = False 网站制作
Exit Function 北京网站设计
End If 网页设计
Else www.qitongnet.com
Roomcheck = False 北京网站制作
Exit Function 网站制作
End If 企通互联
Roomcheck = True 网站设计
End Function
(读者可打开【光盘】|【源文件】|【实例 96 】|【 96.5.txt 】文件,直接复制)
提示:程序中采用“ DataTime ”类下的“ Compare ”方法进行时间比较,查找出现时间重复的订单。以下 3 种情况属于时间重复:① 用户选择的入住时间小于订单中的“ StartTime ”字段值,选择的离店时间大于“ LastTime ”字段值;② 用户选择的入住时间大于订单中的“ StartTime ”字段值,选择的离店时间小于“ LastTime ”字段值;③ 用户选择的入住时间小于订单中的“ StartTime ”字段值,选择的离店时间小于“ LastTime ”字段值。查找得出的重复数如果等于该类型客房的最大客户数,则说明该时间段中该类型的客房已预订满。
( 5 )定义“ Orderinser ”过程用于添加用户预订客房的相关信息到“ tbOrder ”表中,该过程的代码如下所述。
Sub Orderinser() 北京网站建设
Dim Hotelada2 As OleDbDataAdapter 网站设计
Dim HotelDataSet2 As System.Data.DataSet 企通互联
Dim Hoteldt2 As DataTable 网站设计
Dim tbRow As DataRow 北京网站设计
Dim yy As OleDbCommandBuilder 网站制作
Hotelstring = "Select * From tbOrder" 北京网站制作
Hotelada2 = New OleDbDataAdapter(Hotelstring, conn) 企通互联
HotelDataSet2 = New System.Data.DataSet 网站设计
yy = New OleDbCommandBuilder(Hotelada2) 企通互联网站设计
Hotelada2.Fill(HotelDataSet2, "tbOrder") 北京网页设计
Hoteldt2 = HotelDataSet2.Tables("tbOrder") 网站建设北京网站制作
tbRow = Hoteldt2.NewRow 网站设计
tbRow("UserID") = strName 北京网站建设
tbRow("RoomID") = CInt(RoomRadio.SelectedItem.Value) 网站制作
tbRow("OrderNum") = CInt(OrderNum.Text) 企通互联
tbRow("StartTime") = StartTime.Text 网站设计
tbRow("LastTime") = LastTime.Text 北京网站建设
HotelDataSet2.Tables("tbOrder").Rows.Add(tbRow) 网页设计
Hotelada2.Update(HotelDataSet2, "tbOrder") 网站建设
End Sub 网页设计
北京网站制作
北京网站制作
( 6 )定义过程“ ErrInfo ”用于出错时调用该过程显示错误信息,该过程的代码如下所述。
Sub ErrInfo(ByVal Errmess As String) 北京网站制作
Dim strScript As String 企通互联
strScript = "<script language=javascript>" 北京网页设计
strScript += "alert('" + Errmess + "');" 企通互联
strScript += "<" 北京网站设计
strScript += "/" 网站建设
strScript += "script>" 网站制作
RegisterClientScriptBlock("showSaveMessage", strScript) 企通互联
End Sub
(读者可打开【光盘】|【源文件】|【实例 96 】|【 96.7.txt 】文件,直接复制)
( 7 )定义【现在预订】按钮的“ OnClick ”事件响应过程为“ Orderbt_Click ”,并将该过程绑定到【现在预订】按钮的“ OnClick ”事件中。“ Orderbt_Click ”过程的源代码如下所述。
Protected Sub Orderbt_Click(ByVal sender As Object, ByVal e As System.EventArgs) 北京网页设计
Dim Errstr As String 网站制作
HotelConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("data/hotel.mdb") 北京网站制作
conn = New OleDbConnection(HotelConn) 北京网站建设
If Usercheck() = False Then www.qitongnet.com
Errstr = " 请正确登录或正确输入您的注册信息! " 网站建设
ErrInfo(Errstr) 网页设计
Exit Sub 北京网页设计
End If 网页设计
If Roomcheck() = False Then 企通互联
Errstr = " 您预订客房在您预订时间段中已预订满了! " 北京网页设计
ErrInfo(Errstr) 北京网页设计
Exit Sub 北京网页设计
End If 北京网站建设
Orderinser() 北京网站建设
End Sub
( 8 )预览效果。保存“ index.apsx ”,在 IE 中预览效果,如图 96-1 所示。
本实例讲解了客房预订业务中最简单的流程:用户注册、登录、验证用户预订客房是否预订满,以完成客房预订业务。本实例没有对服务器控件进行验证,也没有对注册名惟一性的验证进行,有兴趣的读者可以参考实例 76 和实例 77 ,添加相关功能。当提交预订资料时,客房预订业务会把预订资料以电子邮件的方式发给预订客房的用户,本实例也没有对这方面的知识进行讲解,有兴趣的读者可以参考实例 84 中“步骤三 建立订单邮件自动回复”里的相关内容。当提交预订资料时,客房预订业务也会将资料发给酒店的总台,以便更新总台客房预计的相关数据库,由于这方面的知识已经超出 Dreamweaver 的应用范围,所以这里就不再详细介绍了。至此,本实例操作完毕。
北京网页设计
北京网站建设 网站设计
上一篇:www.qitongnet.comDreamweaver你未必了解的5个小技巧
下一篇:北京网站设计用Dreamweaver做动态文本







