客房預訂業務的特點是顧客流動性大,其用戶注冊方式更為靈活,預訂業務除了常用的驗證外,還要防止在預訂滿的情況下繼續預訂客房。本實例將為讀者介紹如何實現客房預訂業務。
效果說明 圖 96-1 所示是預訂業務的基本界面,用戶可以直接登錄或注冊並預訂客房。
( 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 所示。
( 4 )添加數據列表。單擊 ASP.NET 快捷菜單中的【 asp :單選按鈕列表】,操作如圖 96-9 所示。
( 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
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
(讀者可打開【光盤】|【源文件】|【實例 96 】|【 96.3.txt 】文件,直接復制)
客房預訂業務的特點是顧客流動性大,其用戶注冊方式更為靈活,預訂業務除了常用的驗證外,還要防止在預訂滿的情況下繼續預訂客房。本實例將為讀者介紹如何實現客房預訂業務。
效果說明 圖 96-1 所示是預訂業務的基本界面,用戶可以直接登錄或注冊並預訂客房。
( 3 )建立數據庫鏈接“ ADconn ”,鏈接數據庫“ C:\ Inetpub\wwwroot\adweb \data\hotel.mdb ”,方法可參考實例 75 。