6.1 FrmDangNhap
6.3 FrmDanhSachKhachHang
6.5 FrmThemDSPhong
6.7 FrmTimKiemKhachHang
CHƯƠNG III. ĐÁNH GIÁ VÀ KẾT LUẬN 1. Đánh giá
Những kết quả đạt được:
• Về công nghệ:
- Tìm hiểu và nắm bắt được các công cụ thiết kế chương trình. - Hiểu được quy trình xây dựng một hệ thống.
• Về chương trình:
- Giao diện thân thiên.
- Người sử dụng có thể dễ dàng tìm kiếm, cập nhật, hiệu chỉnh thông tin.
- Hiển thị thông tin theo yêu cầu của người dùng.
• Hạn chế:
- Tính chuyên nghiệp chưa cao. - Chương trình chưa được hoàn hảo. - Nhiều ứng dụng chưa đẹp.
2. Hướng phát triển
Do thời gian hạn chế và trình độ hiểu biết của bản thân chưa nhiều nên việc phân tích thiết kế và cài đặt bài toán quản lý khách sạn chưa hoàn thiện như một phần mềm quản lý. Nó mang tính chất học hỏi, trao đổi và bắt đầu làm quen với thực tế. Vì vậy em rất mong muốn sẽ phát triển tiếp đề tài lên một mức cao hơn, hoàn chỉnh.
3. Kết luận
- Đứng trước xu hướng phát triển nhanh và mạnh của nền công nghệ thông tin thế giới cũng như nước nhà, thì tin học hoá quản lý hành chính là vô
cùng quan trọng và bức thiết hiện nay. Nó sẽ giúp cho các cơ quan hành chính, các công ty, các đơn vị hoạt động kinh doanh giải quyết những công việc một cách nhanh chóng và ít sai sót nhất, đặc biệt là trong lĩnh vực quản lý sổ sách chứng từ, giấy tờ. Những ứng dụng về cơ sở dữ liệu đã giải quyết được những vấn đề bức thiết nhất nêu trên.
- Trong thời gian thực tập và làm đồ án này em đã thực hiện phân tích thiết kế hệ thống quản lý khách sạn với quy mô nhỏ. Mặc dù chương trình chưa được hoàn thiện song nó đã cho thấy được vấn đề quan trọng trong lĩnh vực quản lý, với chương trình quản lý khách sạn này khi đã hoàn thiện sẽ giúp cho việc quản lý được nhanh chóng và hiệu quả.
Tài liệu tham khảo
1. Phạm Hữu Khang, SQL server 2005, Nhà xuất bản Lao động – Xã hội, Hà Nội.
2. Nguyễn Văn Ba, Phân tích và thiết kế hệ thống thông tin, Nhà xuất bản Đại học quốc gia Hà nội.
3. Nguyễn Thiên Bằng, Visual Basic 2005, Nhà xuất bản Lao động xã hội.
4. Nguyễn Thanh Quang – Hoàng Anh Quang, Tự học SQL Server 2005, Nhà xuất bản Văn Hóa Thông Tin.
6 Tổng hợp và biên soạn: Đinh Xuân Lâm(2001), Những bài thực hành
Cơ sở dữ liệu Visual Basic căn bản, Nhà xuất bản thống kê, Thành phố Hồ Chí
PHỤ LỤC Source Code :
Frm đăng ký phòng
Imports System.data.sqlclient
Public Class Frm014DangKyPhong #Region "Phuong thuc ngoai"
Public Sub display_for_insert()
m_e_form_mode = eFormMode.InsertMode Me.ShowDialog()
End Sub
#End Region
#Region "Cau truc du lieu tu dinh nghia" Private Enum eColNumber
MaDatHuyPhong = 3 MaLoaiPhong = 2 MaDoanKhach = 1 SoLuong = 4 NgayDat = 5 NgayDen = 6 NgayDi = 7 End Enum
'Ta khai bao 1 kieu du lieu tự định nghĩa Private Enum eFormMode
InsertMode UpdateMode End Enum
#End Region
#Region "Thuoc tinh"
' Day la bien cho biet trang thai cua form dang o che do insert hay update
Dim m_e_form_mode As eFormMode #End Region
#Region "Phuong thuc trong"
' Phuong thuc nay tao 1 anh xa bao cot nao o duoi CSDL ung voi cot nao tren lưới
Private Function get_mapping_col() As Hashtable Dim v_hst As New Hashtable
v_hst.Add("MaDatHuyPhong", eColNumber.MaDatHuyPhong) v_hst.Add("MaLoaiPhong", eColNumber.MaLoaiPhong) v_hst.Add("MaDoanKhach", eColNumber.MaDoanKhach) v_hst.Add("SoLuong", eColNumber.SoLuong)
v_hst.Add("NgayDat", eColNumber.NgayDat) v_hst.Add("NgayDen", eColNumber.NgayDen) v_hst.Add("NgayDi", eColNumber.NgayDi)
Return v_hst End Function
Private Sub Luu_du_lieu_thong_tin_doan_khach() 'Đây là đối tượng yêu cầu
'Gán Connection và cho đối tượng Command (để cho command biết là lấy dữ liệu từ csdl nào)
v_objInsertcmd.Connection = ApplicationContext.getConnection() v_objInsertcmd.CommandType = CommandType.StoredProcedure
'Gán tên procedure cho cmd
v_objInsertcmd.CommandText = "pr_DoanKhach_insert" 'gán tham số truyền vào cho procedure
v_objInsertcmd.Parameters.Add("@TenDoanKhach", TxtTenDoanKhach.Text)
v_objInsertcmd.Parameters.Add("@HT_NguoiDaiDien", txtHT_NguoiDaiDien.Text)
v_objInsertcmd.Parameters.Add("@SoLuong", txtSoLuong.Text) v_objInsertcmd.Parameters.Add("@SoCMND", txtSoCMND.Text)
v_objInsertcmd.Parameters.Add("@DienThoai", txtDienThoai.Text) v_objInsertcmd.Parameters.Add("@DiaChi", txtDiaChi.Text)
v_objInsertcmd.Parameters.Add("@GhiChu", TxtGhiChu.Text) Dim v_obj_id As New SqlParameter
v_obj_id.Value = -1 v_obj_id.ParameterName = "@id" v_obj_id.Direction = ParameterDirection.Output v_obj_id.SqlDbType = SqlDbType.Decimal v_obj_id = v_objInsertcmd.Parameters.Add(v_obj_id) 'Mở kết nối đến Csdl Try v_objInsertcmd.Connection.Open() v_objInsertcmd.ExecuteNonQuery() v_objInsertcmd.Connection.Close() TxtMaDoanKhach.Text = v_obj_id.Value Catch ex As Exception v_objInsertcmd.Connection.Close() Throw ex End Try
'Thông báo thành công
MessageBox.Show("Thông tin đoàn khách đã được cập nhật!") End Sub
Private Sub Luu_du_lieu_thong_tin_dang_ky() 'Đây là đối tượng yêu cầu
Dim v_objInsertcmd As New SqlCommand
'Gán Connection và cho đối tượng Command (để cho command biết là lấy dữ liệu từ csdl nào)
v_objInsertcmd.Connection = ApplicationContext.getConnection() v_objInsertcmd.CommandType = CommandType.StoredProcedure
''Gán tên procedure cho cmd
v_objInsertcmd.CommandText = "pr_DatHuyPhong_insert" 'gán tham số truyền vào cho procedure
v_objInsertcmd.Parameters.Add("@MaDoanKhach", TxtMaDoanKhach.Text) v_objInsertcmd.Parameters.Add("@MaLoaiPhong", CboMaLoaiPhong.SelectedValue)
v_objInsertcmd.Parameters.Add("@SoLuong", txtSoLuong1.Text) v_objInsertcmd.Parameters.Add("@NgayDat", DtpNgayDat.Value) v_objInsertcmd.Parameters.Add("@NgayDen", DtpNgayDen.Value) v_objInsertcmd.Parameters.Add("@NgayDi", DtpNgayDi.Value) 'Mở kết nối đến Csdl
Try v_objInsertcmd.Connection.Open() v_objInsertcmd.ExecuteNonQuery() v_objInsertcmd.Connection.Close() Catch ex As Exception v_objInsertcmd.Connection.Close() Throw ex End Try
'Thông báo thành công
MessageBox.Show("Dữ liệu đã được cập nhật!") load_data_dat_phong_grid()
End Sub
Private Sub load_data_cbo_ma_loai_phong()
'Đây là đối tượng dùng để mang dữ liệu từ CSDL lên .Net Dim v_objDataAdapter As New SqlDataAdapter
'Đây là đối tượng yêu cầu
Dim v_objSelectcmd As New SqlCommand
'Đây là đối tượng dùng để chứa dữ liệu trên .Net Dim v_dtLoaiPhong As New DataTable
'Gán Connection và cho đối tượng Command (để cho command biết là lấy dữ liệu từ csdl nào)
v_objSelectcmd.Connection = ApplicationContext.getConnection() v_objSelectcmd.CommandType = CommandType.Text
'Gán yêu cầu lấy dữ liệu cho command
v_objSelectcmd.CommandText = "Select * from DM_LoaiPhong"
'Gán yêu cầu cần lấy dữ liệu cho đối tượng mà chở dữ liệu từ csdl lên .Net
v_objDataAdapter.SelectCommand = v_objSelectcmd 'Mở kết nối đến Csdl
Try
v_objSelectcmd.Connection.Open()
'Lấy dữ liệu lên, cho vào bảng LOAI_PHONG v_objDataAdapter.Fill(v_dtLoaiPhong) v_objSelectcmd.Connection.Close() Catch ex As Exception v_objSelectcmd.Connection.Close() Throw ex End Try CboMaLoaiPhong.DataSource = v_dtLoaiPhong CboMaLoaiPhong.DisplayMember = "TenLoaiPhong" CboMaLoaiPhong.ValueMember = "MaLoaiPhong" End Sub
' Day la phuong thuc load du lieu tu 01 data table len 01 grid Private Sub datatable_dat_phong_grid( _
ByVal ip_dt As DataTable) Dim v_hst As Hashtable Dim v_obj As Object
v_hst = get_mapping_col() ' Xoa het du lieu tren luoi
m_fg.Rows.Count = m_fg.Rows.Fixed Dim v_dr As DataRow
'Ung voi moi dong trong bang For Each v_dr In ip_dt.Rows ' Them 1 dong moi
m_fg.Rows.Count = m_fg.Rows.Count + 1 ' Luu du lieu Datarow vao dong tuong ung
'Ung voi moi phan tu trong anh xa For Each v_obj In v_hst.Keys
m_fg(m_fg.Rows.Count - 1, v_hst(v_obj)) _ = v_dr(CType(v_obj, String))
Next ' Tao Tree m_fg.Subtotal(C1.Win.C1FlexGrid.AggregateEnum.None, 0, eColNumber.MaDoanKhach, eColNumber.MaLoaiPhong, "{0}") Next End Sub
Private Sub load_data_dat_phong_grid() 'Đây là đối tượng yêu cầu
Dim v_objSelectcmd As New SqlCommand ' Lấy kết nối đến CSDL
Dim v_objConn As SqlConnection = ApplicationContext.getConnection() 'Đây là đối tượng dùng để mang dữ liệu từ CSDL lên .Net
Dim v_objDataAdapter As New SqlDataAdapter
'Đây là đối tượng dùng để chứa dữ liệu trên .Net Dim v_dtCTTTDangKy As New DataTable
'Gán Connection và cho đối tượng Command (để cho command biết là lấy dữ liệu từ csdl nào)
v_objSelectcmd.Connection = v_objConn
v_objSelectcmd.CommandType = CommandType.Text 'Gán yêu cầu lấy dữ liệu cho command
If TxtMaDoanKhach.Text.Trim.Length > 0 Then
v_objSelectcmd.CommandText = "Select * from NV_DatHuyPhong WHERE MaDoanKhach= " + TxtMaDoanKhach.Text
Else
v_objSelectcmd.CommandText = "Select * from NV_DatHuyPhong WHERE MaDoanKhach= -1 "
End If
'Gán yêu cầu cần lấy dữ liệu cho đối tượng mà chở dữ liệu từ csdl lên .Net
v_objDataAdapter.SelectCommand = v_objSelectcmd 'Mở kết nối đến Csdl
Try
v_objSelectcmd.Connection.Open()
'Lấy dữ liệu lên, cho vào bảng CHI_TIET_THONG_TIN_DANG_KY v_objDataAdapter.Fill(v_dtCTTTDangKy)
v_objSelectcmd.Connection.Close() Catch ex As Exception
If v_objConn.State = ConnectionState.Open Then
v_objConn.Close() End If Throw ex End Try datatable_dat_phong_grid(v_dtCTTTDangKy) End Sub
Private Sub load_data_chi_tiet_dat_phong_grid() 'Đây là đối tượng yêu cầu
Dim v_objSelectcmd As New SqlCommand ' Lấy kết nối đến CSDL
Dim v_objConn = ApplicationContext.getConnection() 'Đây là đối tượng dùng để mang dữ liệu từ CSDL lên .Net Dim v_objDataAdapter As New SqlDataAdapter
'Đây là đối tượng dùng để chứa dữ liệu trên .Net Dim v_dtDatPhong As New DataTable
'Gán Connection và cho đối tượng Command (để cho command biết là lấy dữ liệu từ csdl nào)
v_objSelectcmd.Connection = v_objConn
v_objSelectcmd.CommandType = CommandType.Text 'Gán yêu cầu lấy dữ liệu cho command
v_objSelectcmd.CommandText = "Select * from NV_DatHuyPhong order by MaDoanKhach"
'Gán yêu cầu cần lấy dữ liệu cho đối tượng mà chở dữ liệu từ csdl lên .Net
v_objDataAdapter.SelectCommand = v_objSelectcmd 'Mở kết nối đến Csdl
Try
v_objSelectcmd.Connection.Open()
'Lấy dữ liệu lên, cho vào bảng CHI_TIET_THONG_TIN_DANG_KY v_objDataAdapter.Fill(v_dtDatPhong) v_objSelectcmd.Connection.Close() Catch ex As Exception Throw ex End Try datatable_dat_phong_grid(v_dtDatPhong) End Sub
' Phuong thuc nay tao anh xa de dua len luoi la ma_doan, nhung hien thi la ten_doan
Private Sub mapping_col_ma_doan()
'Đây là đối tượng dùng để mang dữ liệu từ CSDL lên .Net Dim v_objDataAdapter As New SqlDataAdapter
'Đây là đối tượng yêu cầu
Dim v_objSelectcmd As New SqlCommand
'Đây là đối tượng dùng để chứa dữ liệu trên .Net Dim v_dtDoanKhach As New DataTable
'Gán Connection và cho đối tượng Command (để cho command biết là lấy dữ liệu từ csdl nào)
v_objSelectcmd.Connection = ApplicationContext.getConnection() v_objSelectcmd.CommandType = CommandType.Text
'Gán yêu cầu lấy dữ liệu cho command
v_objSelectcmd.CommandText = "Select * from DM_DoanKhach"
'Gán yêu cầu cần lấy dữ liệu cho đối tượng mà chở dữ liệu từ csdl lên .Net
v_objDataAdapter.SelectCommand = v_objSelectcmd 'Mở kết nối đến Csdl
Try
v_objSelectcmd.Connection.Open()
'Lấy dữ liệu lên, cho vào bảng DOAN_KHACH v_objDataAdapter.Fill(v_dtDoanKhach) v_objSelectcmd.Connection.Close() Catch ex As Exception v_objSelectcmd.Connection.Close() Throw ex End Try
Dim v_hst As New Hashtable Dim v_dr As DataRow
For Each v_dr In v_dtDoanKhach.Rows
v_hst.Add(v_dr("MaDoanKhach"), v_dr("TenDoanKhach")) Next
m_fg.Cols(eColNumber.MaDoanKhach).DataMap = v_hst End Sub
' Phuong thuc nay tao anh xa de dua len luoi la ma_loai_phong, nhung hien thi la ten_loai_phong
Private Sub mapping_col_ma_loai_phong()
'Đây là đối tượng dùng để mang dữ liệu từ CSDL lên .Net Dim v_objDataAdapter As New SqlDataAdapter
'Đây là đối tượng yêu cầu
Dim v_objSelectcmd As New SqlCommand
'Đây là đối tượng dùng để chứa dữ liệu trên .Net Dim v_dtMaLoaiPhong As New DataTable
'Gán Connection và cho đối tượng Command (để cho command biết là lấy dữ liệu từ csdl nào)
v_objSelectcmd.Connection = ApplicationContext.getConnection() v_objSelectcmd.CommandType = CommandType.Text
'Gán yêu cầu lấy dữ liệu cho command
v_objSelectcmd.CommandText = "Select * from DM_LoaiPhong"
'Gán yêu cầu cần lấy dữ liệu cho đối tượng mà chở dữ liệu từ csdl lên .Net
v_objDataAdapter.SelectCommand = v_objSelectcmd 'Mở kết nối đến Csdl
Try
v_objSelectcmd.Connection.Open()
'Lấy dữ liệu lên, cho vào bảng LOAI_PHONG v_objDataAdapter.Fill(v_dtMaLoaiPhong) v_objSelectcmd.Connection.Close() Catch ex As Exception v_objSelectcmd.Connection.Close() Throw ex End Try
Dim v_hst As New Hashtable Dim v_dr As DataRow
For Each v_dr In v_dtMaLoaiPhong.Rows
v_hst.Add(v_dr("MaLoaiPhong"), v_dr("TenLoaiPhong")) Next
m_fg.Cols(eColNumber.MaLoaiPhong).DataMap = v_hst End Sub
Private Sub xoa_chi_tiet_thong_tin_dang_ky()
If MessageBox.Show("Bạn có muốn xóa dữ liệu không?", "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly) = DialogResult.No Then
Exit Sub
End If
'Đây là đối tượng yêu cầu
Dim v_objDeleteCmd As New SqlCommand
'Gán Connection và cho đối tượng Command (để cho command biết là lấy dữ liệu từ csdl nào)
v_objDeleteCmd.Connection = ApplicationContext.getConnection() v_objDeleteCmd.CommandType = CommandType.StoredProcedure
'Gán yêu cầu lấy dữ liệu cho command
v_objDeleteCmd.CommandText = "pr_DatHuyPhong_Delete"
v_objDeleteCmd.Parameters.Add("@MaDatHuyPhong", m_fg(m_fg.Row, eColNumber.MaDatHuyPhong))
'Gán yêu cầu cần lấy dữ liệu cho đối tượng mà chở dữ liệu từ csdl lên .Net
'Mở kết nối đến Csdl Try
v_objDeleteCmd.Connection.Open() v_objDeleteCmd.ExecuteNonQuery() v_objDeleteCmd.Connection.Close()
MessageBox.Show("Bạn đã xóa thành công!") Catch ex As Exception v_objDeleteCmd.Connection.Close() Throw ex End Try load_data_chi_tiet_dat_phong_grid() End Sub #End Region
Private Sub Frm014DangKyPhong_Load(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles MyBase.Load Try
' Không cho edit trên lưới m_fg.AllowEditing = False
'Ẩn cột mã đoàn
m_fg.Cols(eColNumber.MaDoanKhach).Visible = False
'Đặt cột để hiện lên tree là mã loại phòng m_fg.Tree.Column = eColNumber.MaLoaiPhong 'Để style cho lưới
m_fg.Tree.Style = C1.Win.C1FlexGrid.TreeStyleFlags.Simple load_data_dat_phong_grid() mapping_col_ma_doan() mapping_col_ma_loai_phong() LblMaDoanKhach.Visible = False TxtMaDoanKhach.Visible = False load_data_cbo_ma_loai_phong() Catch ex As Exception MessageBox.Show(ex.ToString()) End Try End Sub
Private Sub BtnLuu_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnLuu.Click Try Luu_du_lieu_thong_tin_doan_khach() Catch ex As Exception MessageBox.Show(ex.ToString()) End Try End Sub
Private Sub BtnDanhSachDoanKhach_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles BtnDanhSachKhachHang.Click Try
Dim v_frm005 As New Frm005DanhSachKhachHang v_frm005.ShowDialog()
Catch ex As Exception
MessageBox.Show(ex.ToString()) End Try
End Sub
Private Sub BtnKiemTraPhong_Click(ByVal sender As System.Object, ByVal
Try
Dim v_frm003 As New Frm003DanhSachPhong v_frm003.ShowDialog()
Catch ex As Exception
MessageBox.Show(ex.ToString()) End Try
End Sub
Private Sub BtnLuu1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnLuu1.Click Try Luu_du_lieu_thong_tin_dang_ky() Catch ex As Exception MessageBox.Show(ex.ToString()) End Try End Sub
Private Sub BtnThoat_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnThoat.Click Try Me.Close() Catch ex As Exception MessageBox.Show(ex.ToString()) End Try End Sub
Private Sub BtnKiemTraTT_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles BtnKiemTraTT.Click Try load_data_chi_tiet_dat_phong_grid() Catch ex As Exception MessageBox.Show(ex.ToString()) End Try End Sub
Private Sub BtnXoa_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnXoa.Click Try xoa_chi_tiet_thong_tin_dang_ky() Catch ex As Exception MessageBox.Show(ex.ToString()) End Try End Sub End Class