天极传媒:
天极网
比特网
IT专家网
52PK游戏网
极客修
全国分站

北京上海广州深港南京福建沈阳成都杭州西安长春重庆大庆合肥惠州青岛郑州泰州厦门淄博天津无锡哈尔滨

产品
  • 网页
  • 产品
  • 图片
  • 报价
  • 下载
全高清投影机 净化器 4K电视曲面电视小家电滚筒洗衣机
您现在的位置: 天极网 > 软件 > 网页>新闻>Dreamweaver实例:客房预订

Dreamweaver实例:客房预订业务

天极网2006-06-08 09:09我要吐槽

  步骤三 实现客户预订业务

  ( 1 )实现客户预订业务的程序流程如图 96-11 所示。

  

Dreamweaver



  ( 2 )为页面添加 4 个全局变量,如图 96-12 中圆角方框所示。

  

Dreamweaver



  ( 3 )定义“ Usercheck ”函数。该函数用于检测用户是否登录正确,登录不正确时是否注册成功,如果用户登录正确或者注册成功,则该函数返回“ True ”,否则将返回“ False ”,该函数的代码如下所述。

以下是引用片段:
  Function Usercheck() As Boolean 

  Dim Hotelada1, Hotelada2 As OleDbDataAdapter 

  Dim HotelDataSet1, HotelDataSet2 As System.Data.DataSet 

  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") 

  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) _ 

  And (Trim(UserTel.Text) <> Nothing) Then 

  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 

  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) 

  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 

  Roomcheck = False 

  Exit Function 

  End If 

  Roomcheck = True 

  End Function


  提示:程序中采用“ 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


  ( 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 

  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 的应用范围,所以这里就不再详细介绍了。至此,本实例操作完毕。

作者:龙犊整理责任编辑:龙犊)
请关注天极网天极新媒体 最酷科技资讯
扫码赢大奖
评论
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!
热点推荐
微软Windows 10操作系统Win10系统在Win8的基础上对界面、特性以及跨平台方面做了诸多优化。[详细]
Windows 10 新视界 [进入频道][使用技巧][微博互动]
手机整机DIY企业级