黑马程序员之项目开发学习笔记:酒店管理系统(HotelManager)

发布于:2023-07-04 ⋅ 阅读:(112) ⋅ 点赞:(0)

--------------------------------------------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王牌技术员联盟、期待与您交流!---------------------------------------------------------




网站公告

今日签到

点亮在社区的每一天
去签到