1. 程式人生 > >黑馬程式設計師之專案開發學習筆記:酒店管理系統(HotelManager)

黑馬程式設計師之專案開發學習筆記:酒店管理系統(HotelManager)

--------------------------------------------2345王牌技術員聯盟2345王牌技術員聯盟、期待與您交流!---------------------------------------------

某酒店擬開發一套內部管理系統,基礎設施實現如下功能:

1. 客房型別管理(客房型別分中,高,低)

2. 客房使用情況管理(客房使用情況分:空閒,入住,維修,自用)

3. 現要求根據客房型別對房間統一定價,並設定某型別客房是否可以加床,以及加床的價格

4. 每一個房間對應所屬客房型別,價格,以及客房的使用情況描述床位數

5. 根據客房型別名稱,客房房間號對資訊進行查詢


客房型別資訊管理

     1. 在客房型別窗體載入時,以表格的形式展示所有客房型別資訊;

     2. 單擊某一資訊時,在資訊展示區下面顯示資訊編輯區,實現對資訊的增,刪,改操作

     3. 點選工具欄上的“取消按鈕”隱藏編輯區

系統主視窗:

客房型別管理窗體:RoomTypeSettingForm

資料庫設計:

三層結構中各層之間的依賴關係:

public IList<RoomType> GetRoomTypeListByTypeName(string typeName)//返回一個客房型別泛型集合

{

          IList<RoomType> objRoomTypeList = new List<RoomType>();//例項化一個客房型別泛型集合物件

          //......

          while(objReader.Read())//迴圈讀取多個客房型別資訊實體物件

         {

                RoomType objRoomType = new RoomType();//例項化一個客房型別資訊實體物件

                objRoomType.TypeId = Convert.ToInt32(objReader["TypeID"]);

                //......

                objRoomTypeList.Add(objRoomType);

          }

          objReader.Close();

          objReader.Dispose();

           //......

           return objRoomTypeList; //將客房型別資訊實體物件新增到泛型集合中

}

新增記錄時通過獲取記錄的自增列ID來判斷記錄是否增加成功:sql命令實現部分

Create PROCEDURE [dbo].[儲存過程名稱]

            //......

AS

SET NOCCUNT ON

INSERT INTO [dbo].[表名](

             //......

)VALUES(

            //......

)

SELECT @@IDENTITY

新增記錄時通過獲取記錄的自增列ID來判斷記錄是否增加成功:ADO.NET實現部分

//............

int ID;

using(SqlConnection conn = new SqlConnection(connString))

{

       SqlCommand objCommand = new SqlCommand(dboOwner + ".儲存過程名稱",conn);

       objCommand.CommandType = CommandType.StoredProcedure;

       //.............

       conn.Open();

        ID = Convert.ToInt32(objCommand.ExecuteScalar());

        conn.Close();

     }

     return ID;

}

在業務邏輯層通過判斷客房型別ID檢測客房型別資訊是否存在,以及客房型別資訊錄入是否成功

ID = 呼叫資料訪問層方法得到客房型別ID;

if(ID!=0)//判斷資訊是否存在

{

    //呼叫資料訪問層修改資訊方法

}

else

{

      //呼叫資料訪問層新增資訊方法

}

//......

if(ID >0) //判斷資訊錄入是否成功

    message = "型別資訊錄入成功!";

else

    message = "型別資訊錄入失敗!";

//......

編輯客房型別資訊:

private void dgvRoomType_CellClick(object sender,DataGridViewCellEventArgs e)//單擊單元格中的任何位置時發生

{

       //顯示編輯區

        this.pnlRoomTypeContent.Visible = true;

        this.Height = 480;

        //獲取客房型別ID

        typeID = dgvRoomType.Rows[e.RowIndex].Cells["ID"].Value.ToString();//RowIndex行索引,ID列索引

        //呼叫業務邏輯層通過型別ID得到客房型別資訊

        //......

       //回綁資料

        //......

}

--------------------------------------------------- 2345王牌技術員聯盟2345王牌技術員聯盟、期待與您交流!---------------------------------------------------------