zoukankan      html  css  js  c++  java
  • 分层开发

    相信做了这么多小项目了,我们分析题的能力有了吧,接下来我们先来看看这个项目的需求

    (1)该软件系统能涵盖酒店现有的房间入住服务业务

    (2)让顾客可以查询酒店提供的房间类型,价位和空闲房间的信息,从而减少顾客和前台的沟通时间成本

    案例覆盖技能点:

    (1)分层开发思想(2)搭建三层架构(3)ADO.NET中存储过程的使用(4)实体类的使用(5)异常处理

    问题分析:

    (1)房间入住登记的功能(2)基础信息的维护功能(3)入住查看功能(4)退房功能(5)房间状态查看功能

    先看看效果:

    房间管理效果图:

    顾客入住登记效果图:

    查看入住和退房效果图:

    分析完这个,你的脑袋里有没有一个简单的图,接下来要开始写代码了。

    首先创建实体类

    复制代码
        /// <summary>
        /// 房间信息 Model
        /// </summary>
        public class GuestRecord
        {
            private int guestID;  //顾客的ID
            public int GuestID
            {
                get { return guestID; }
                set { guestID = value; }
            }
    
            private string identityID;//身份证号
            public string IdentityID
            {
                get { return identityID; }
                set { identityID = value; }
            }
    
            private string guestName;//顾客姓名
            public string GuestName
            {
                get { return guestName; }
                set { guestName = value; }
            }
    
            private int roomID; //房间ID
            public int RoomID
            {
                get { return roomID; }
                set { roomID = value; }
            }
    
            private int resideID;  //入住状态ID
            public int ResideID
            {
                get { return resideID; }
                set { resideID = value; }
            }
    
            private DateTime resideDate; //入住日期
            public DateTime ResideDate
            {
                get { return resideDate; }
                set { resideDate = value; }
            }
    
            private DateTime leaveDate; //退房日期
            public DateTime LeaveDate
            {
                get { return leaveDate; }
                set { leaveDate = value; }
            }
    
            private decimal deposit; //押金
            public decimal Deposit
            {
                get { return deposit; }
                set { deposit = value; }
            }
    
            private decimal totalMoney; //房款
            public decimal TotalMoney
            {
                get { return totalMoney; }
                set { totalMoney = value; }
            }
        }
    复制代码
    复制代码
        /// <summary>
        /// 入住状态Model
        /// </summary>
        public class ResideState
        {
            private int resideId; //房间状态ID
            public int ResideId
            {
                get { return resideId; }
                set { resideId = value; }
            }
    
            private string resideName; //入住状态
            public string ResideName
            {
                get { return resideName; }
                set { resideName = value; }
            }
        }
    复制代码
    复制代码
         /// <summary>
        /// 房间信息描述Model
        /// </summary>
        public class Room
        {
            private int roomID;
            public int RoomID
            {
                get { return roomID; }
                set { roomID = value; }
            }
    
            private int bedNum;
            public int BedNum
            {
                get { return bedNum; }
                set { bedNum = value; }
            }
    
            private string description;
            public string Description
            {
                get { return description; }
                set { description = value; }
            }
    
            private int roomStateID;
            public int RoomStateID
            {
                get { return roomStateID; }
                set { roomStateID = value; }
            }
    
            private int guestNum;
            public int GuestNum
            {
                get { return guestNum; }
                set { guestNum = value; }
            }
    
            private int roomTypeID;
            public int RoomTypeID
            {
                get { return roomTypeID; }
                set { roomTypeID = value; }
            }
        }
    复制代码
    复制代码
         /// <summary>
        /// 房间状态 Model
        /// </summary>
        public class RoomState
        {
            private int roomStateID;
            public int RoomStateID
            {
                get { return roomStateID; }
                set { roomStateID = value; }
            }
    
            private string roomStateName;
            public string RoomStateName
            {
                get { return roomStateName; }
                set { roomStateName = value; }
            }
        }
    复制代码
    复制代码
         /// <summary>
        /// 房间类型 Model
        /// </summary>
        public class RoomType
        {
            private int typeID;
            public int TypeID
            {
                get { return typeID; }
                set { typeID = value; }
            }
    
            private string typeName;
            public string TypeName
            {
                get { return typeName; }
                set { typeName = value; }
            }
    
            private decimal typePrice;
            public decimal TypePrice
            {
                get { return typePrice; }
                set { typePrice = value; }
            }
        }
    复制代码

    数据访问层DAL:

    复制代码
         /// <summary>
        /// 房间信息访问层
        /// </summary>
        public class GuestRecordDAL
        {
            //添加客户信息
            public bool IGuest(GuestRecord guest)
            {
                bool flag = false;
                string sql = "usp_insertGuestRecord";
                CommandType type = CommandType.StoredProcedure;
                SqlParameter[] paras =
                    {
                     new SqlParameter("@identityID",guest.IdentityID),
                     new SqlParameter("@guestName",guest.GuestName),
                     new SqlParameter("@roomID",guest.RoomID),
                     new SqlParameter("@ResideDate",guest.ResideDate),
                     new SqlParameter("@deposit",guest.Deposit)
                    };
                int count = SQLHelper.ExecuteNonQuery(sql, type, paras);
                if (count > 0)
                {
                    flag = true;
                }
                return flag;
            }
            //查询信息
            public DataTable SRoom()
            {
                string sql = @"select GuestId,GuestName,IdentityId,ResideDate,Deposit,ResideName,LeaveDate,TotalMoney,RoomStateName,GuestNum,TypePrice
                             from GuestRecord,Room,RoomState,ResideState,RoomType
                             where GuestRecord.ResideID=ResideState.ResideID
                             and GuestRecord.Roomid=Room.roomid and Room.RoomTypeId=RoomType.TypeId
                             and room.RoomStateID=RoomState.RoomStateId";
                DataTable table = SQLHelper.ExecuteDataTable(sql);
                return table;
            }
             //根据条件查询
            public DataTable SRoom(string time1, string time2,int resideid)
            {
                string sql = @"select GuestId,GuestName,IdentityId,ResideDate,Deposit,ResideName,LeaveDate,TotalMoney,RoomStateName,GuestNum,TypePrice
                             from GuestRecord,Room,RoomState,ResideState,roomType
                             where GuestRecord.ResideID=ResideState.ResideID
                             and GuestRecord.Roomid=Room.roomid and Room.RoomTypeId=RoomType.TypeId
                             and room.RoomStateID=RoomState.RoomStateId 
                             and ResideDate between '" + time1+ "' and '" + time2 + "' and GuestRecord.Resideid="+resideid+" ";
               
                DataTable table = SQLHelper.ExecuteDataTable(sql);
                return table;
            }
            //修改客户的房间信息
            public bool URoom(GuestRecord guest)
            {
                bool flag = false;
                string sql = "refund_Room";
                CommandType type = CommandType.StoredProcedure;
                SqlParameter[] paras = 
                    {
                       new SqlParameter("@GuestID",guest.GuestID),
                       new SqlParameter("@requirePay",guest.TotalMoney),
                       new SqlParameter("@LeaveDate",guest.LeaveDate)
                    };
                int count= SQLHelper.ExecuteNonQuery(sql,type,paras);
               if(count>0)
                {
                    flag = true;
                }
                return flag;
            }
        }
    复制代码

    一个工具类:

    复制代码
     public class MyTool
        {
            /// <summary>
            /// DataSetToList
            /// </summary>
            /// <typeparam name="T">转换类型</typeparam>
            /// <param name="dataSet">数据源</param>
            /// <param name="tableIndex">需要转换表的索引</param>
            /// <returns></returns>
            public List<T> DataTableToList<T>(DataTable dt)
            {
                //确认参数有效
                if (dt == null )
                    return null;
                List<T> list = new List<T>();
    
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    //创建泛型对象
                    T _t = Activator.CreateInstance<T>();
                    //获取对象所有属性
                    PropertyInfo[] propertyInfo = _t.GetType().GetProperties();
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        foreach (PropertyInfo info in propertyInfo)
                        {
                            //属性名称和列名相同时赋值
                            if (dt.Columns[j].ColumnName.ToUpper().Equals(info.Name.ToUpper()))
                            {
                                if (dt.Rows[i][j] != DBNull.Value)
                                {
                                    info.SetValue(_t, dt.Rows[i][j], null);
                                }
                                else
                                {
                                    info.SetValue(_t, null, null);
                                }
                                break;
                            }
                        }
                    }
                    list.Add(_t);
                }
                return list;
            }
        }
    复制代码
    复制代码
         /// <summary>
        /// 入住状态访问层
        /// </summary>
        public class ResideStateDAL
        {
            //查询房间入住状态
            public DataTable SRoom()
            {
                string sql = "select * from ResideState";
                DataTable table = SQLHelper.ExecuteDataTable(sql);
                return table;
            }
        }
    复制代码
    复制代码
         /// <summary>
        /// 房间信息访问层
        /// </summary>
        /// 描述   房间状态  房间类型
        public class RoomDAL
        {
            //查询房间信息
            public DataTable Room()
            {
                string sql = @"select RoomID, BedNum, RoomStateName, TypeName, Description, GuestNum from Room,RoomType,RoomState where 
                               Room.RoomTypeID=RoomType.TypeId 
                               and Room.RoomStateID=RoomState.RoomStateID";
                DataTable table=SQLHelper.ExecuteDataTable(sql);
                return table;
            }
    
            //根据房间号查询
            public DataTable Room(Room room)
            {
                string sql = @"select RoomID, BedNum, RoomStateName, TypeName, Description, GuestNum from Room,RoomType,RoomState where 
                               Room.RoomTypeID=RoomType.TypeId 
                               and Room.RoomStateID=RoomState.RoomStateID  
                               and RoomID =@roomid";
                SqlParameter para = new SqlParameter("@roomid",room.RoomID);
                DataTable table = SQLHelper.ExecuteDataTable(sql,para);
                return table;
            }
    
            //修改房间信息
            public bool URoom(Room room)
            {
                bool flag = false;
                string sql = "usp_updateRoom";
                CommandType type = CommandType.StoredProcedure;
                SqlParameter[] paras =
                    {
                     new SqlParameter("@roomID",room.RoomID),
                     new SqlParameter("@bedNum",room.BedNum),
                     new SqlParameter("@description",room.Description),
                     new SqlParameter("@roomTypeID",room.RoomTypeID)
                     };
                 
                int count= SQLHelper.ExecuteNonQuery(sql,type,paras);
                if(count>0)
                {
                    flag = true;
                }
                return flag;
            }
    
            //删除房间信息
            public bool DRoom(int roomid)
            {
                bool flag = false;
                string sql = "usp_deleteRoomById";
                CommandType type = CommandType.StoredProcedure;
                SqlParameter para = new SqlParameter("@roomID",roomid);
                int count=SQLHelper.ExecuteNonQuery(sql,type,para);
                if(count>0)
                {
                    flag = true;
                }
                return flag;
            }
    
            //添加房间信息
            public bool IRoom(Room room)
            {
                bool flag = false;
                string sql = "usp_insertRoom";
                CommandType type = CommandType.StoredProcedure;
                SqlParameter[] paras =
                {
                    new SqlParameter("@bedNum",room.BedNum),
                    new SqlParameter("@description",room.Description),
                    new SqlParameter("@roomTypeID",room.RoomTypeID)
                };
               int count= SQLHelper.ExecuteNonQuery(sql,type,paras);
                if(count>0)
                {
                    flag = true;
                }
                return flag;
            }
        }
    复制代码
    复制代码
         /// <summary>
        /// 房间状态访问层
        /// </summary>
        ///入住  空闲   维修 
    
        public class RoomStateDAL
        {
            //查询空闲房间
            public List<Room> SRoom()
            {
                string sql = "select roomid,BedNum from Room where roomstateid=2";
                DataTable table =SQLHelper.ExecuteDataTable(sql);
                MyTool tool = new MyTool();
    
                return tool.DataTableToList<Room>(table);
            }
        }
    复制代码
    复制代码
          /// <summary>
         /// 房间类型访问层
        /// </summary>
        /// 价格  类型 
        public class RoomTypeDAL
        {
            //查询全部房间价格
            public DataTable Room()
            {
                string sql = "select * from RoomType";
                DataTable table= SQLHelper.ExecuteDataTable(sql);
                return table;
            }
    
            //根据房间类型查询
            public DataTable Room(RoomType type)
            {
               
                string sql = "select * from RoomType where TypeName like '%'+@name+'%'";
                SqlParameter para = new SqlParameter("@name",type.TypeName);
                DataTable table= SQLHelper.ExecuteDataTable(sql,para);
                return table;
    
            }
    
            //插入房间类型
            public bool IRoom(RoomType types)
            {
                bool flag = false;
                string sql = "usp_insertRoomType";
                CommandType type = CommandType.StoredProcedure;
                SqlParameter[] paras =
                {
                    new SqlParameter("@TypeName",types.TypeName),
                    new SqlParameter("@TypePrice",types.TypePrice)
                };
               int count= SQLHelper.ExecuteNonQuery(sql,type,paras);
                if(count>0)
                {
                    flag = true;
                }
                return flag;
            }
    
            //修改房间类型
            public bool URoom(RoomType types)
            {
                bool flag = false;
                string sql = "usp_updateRoomType";
                CommandType type = CommandType.StoredProcedure;
                SqlParameter[] paras = {
                    new SqlParameter("@typeID",types.TypeID),
                    new SqlParameter("@typeName",types.TypeName),
                    new SqlParameter("@typePrice",types.TypePrice)
                };
                int count =SQLHelper.ExecuteNonQuery(sql,type,paras);
                if(count>0)
                {
                    flag = true;
                }
                return flag;
            }
    
            //删除房间类型
            public bool DRoom(int typeid)
            {
                bool flag = false;
                string sql = "usp_deleteRoomTypeById";
                CommandType type = CommandType.StoredProcedure;
                SqlParameter para = new SqlParameter("@typeID",typeid);
                int count=SQLHelper.ExecuteNonQuery(sql,type,para);
                if(flag)
                {
                    flag = true;
                }
                return flag;
            }
    
            //查询房间号和入住状态
            public List<Room> Romm(int typeid)
            {
                string sql = "select roomid,roomstateid from room where roomtypeid="+typeid+"";
                DataTable table=SQLHelper.ExecuteDataTable(sql);
                MyTool tool = new MyTool();
                return tool.DataTableToList<Room>(table);
            }
        }
    复制代码
    复制代码
    public static  class SQLHelper
        {
          //用静态的方法调用的时候不用创建SQLHelper的实例
          //Execetenonquery
         // public static string Constr = "server=HAPPYPIG\SQLMODEL;database=shooltest;uid=sa;pwd=6375196;";
          public static string Constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
          public static int id;
          /// <summary>
          /// 执行NonQuery命令
          /// </summary>
          /// <param name="cmdTxt"></param>
          /// <param name="parames"></param>
          /// <returns></returns>
          public static int ExecuteNonQuery(string cmdTxt, params SqlParameter[] parames)
          {
              return ExecuteNonQuery(cmdTxt, CommandType.Text, parames);
          }
          //可以使用存储过程的ExecuteNonquery
          public static int ExecuteNonQuery(string cmdTxt, CommandType cmdtype, params SqlParameter[] parames)
          {
              //判断脚本是否为空 ,直接返回0
              if (string.IsNullOrEmpty(cmdTxt))
              {
                  return 0;
              }
              using (SqlConnection con = new SqlConnection(Constr))
              {
                  using (SqlCommand cmd = new SqlCommand(cmdTxt, con))
                  {
                      if (parames != null)
                      {
                          cmd.CommandType = cmdtype;
                          cmd.Parameters.AddRange(parames);
                      }
                      con.Open();
                      return cmd.ExecuteNonQuery();
                  }
              }
          }
          public static SqlDataReader ExecuteDataReader(string cmdTxt, params SqlParameter[] parames)
          {
              return ExecuteDataReader(cmdTxt, CommandType.Text, parames);
          }
          //SQLDataReader存储过程方法
          public static SqlDataReader ExecuteDataReader(string cmdTxt, CommandType cmdtype, params SqlParameter[] parames)
          {
              if (string.IsNullOrEmpty(cmdTxt))
              {
                  return null;
              }
              SqlConnection con = new SqlConnection(Constr);
    
              using (SqlCommand cmd = new SqlCommand(cmdTxt, con))
              {
                  cmd.CommandType = cmdtype;
                  if (parames != null)
                  {
                      
                      cmd.Parameters.AddRange(parames);
                  }
                  con.Open();
                  //把reader的行为加进来。当reader释放资源的时候,con也被一块关闭
                  return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
              }
    
          }
          public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parames)
          {
              return ExecuteDataTable(sql, CommandType.Text, parames);
          }
          //调用存储过程的类,关于(ExecuteDataTable)
          public static DataTable ExecuteDataTable(string sql, CommandType cmdType, params SqlParameter[] parames)
          {
              if (string.IsNullOrEmpty(sql))
              {
                  return null;
              }
              DataTable dt = new DataTable();
              using (SqlDataAdapter da = new SqlDataAdapter(sql, Constr))
              {
                  da.SelectCommand.CommandType = cmdType;
                  if (parames != null)
                  {
                      da.SelectCommand.Parameters.AddRange(parames);
                  }
                  da.Fill(dt);
                  return dt;
              }
          }
        
          /// <summary>
          /// ExecuteScalar
          /// </summary>
          /// <param name="cmdTxt">第一个参数,SQLServer语句</param>
          /// <param name="parames">第二个参数,传递0个或者多个参数</param>
          /// <returns></returns>
          public static object ExecuteScalar(string cmdTxt, params SqlParameter[] parames)
          {
              return ExecuteScalar(cmdTxt, CommandType.Text, parames);
          }
          //可使用存储过程的ExecuteScalar
          public static object ExecuteScalar(string cmdTxt, CommandType cmdtype, params SqlParameter[] parames)
          {
              if (string.IsNullOrEmpty(cmdTxt))
              {
                  return null;
              }
              using (SqlConnection con = new SqlConnection(Constr))
              {
                  using (SqlCommand cmd = new SqlCommand(cmdTxt, con))
                  {
                      cmd.CommandType = cmdtype;
                      if (parames != null)
                      {
                          cmd.Parameters.AddRange(parames);
                      }
                      con.Open();
                    return   cmd.ExecuteScalar();
                  }
              }
              
          }
          //调用存储过程的DBHelper类(关于ExeceutScalar,包含事务,只能处理Int类型,返回错误号)
          public static object ExecuteScalar(string cmdTxt, CommandType cmdtype,SqlTransaction sqltran, params SqlParameter[] parames)
          {
               if (string.IsNullOrEmpty(cmdTxt))
              {
                  return 0;
              }
              using (SqlConnection con = new SqlConnection(Constr))
              {
                  int sum = 0;
                  using (SqlCommand cmd = new SqlCommand(cmdTxt, con))
                  {
                      cmd.CommandType=cmdtype;
                      if (parames != null)
                      {
                          cmd.Parameters.AddRange(parames);
                      }
                      con.Open();
                      sqltran = con.BeginTransaction();
                      try
                      {
                          cmd.Transaction = sqltran;
                          sum=Convert.ToInt32( cmd.ExecuteScalar());
                          sqltran.Commit();
                      }
                      catch (SqlException ex)
                      {
                          sqltran.Rollback();
                      }
                      return sum;
                  }
              }
          }
        }
    复制代码

    业务逻辑层BLL:

    复制代码
         ///业务逻辑判断
        public class GuestRecordBLL
        {
            GuestRecordDAL dal = new GuestRecordDAL();
            //增加
            public bool IGuest(GuestRecord guest)
            {
                return dal.IGuest(guest);
            }
             //查询
            public DataTable SRoom()
            {
                return dal.SRoom();
            }
            //根据条件查询
            public DataTable SRoom(string time1, string time2, int resideid)
            {
                return dal.SRoom(time1, time2, resideid);
            }
            //删除
            public bool URoom(GuestRecord guest)
            {
                return dal.URoom(guest);
            }
        }
    复制代码
    复制代码
     public class ResideStateBLL
        {
            ResideStateDAL dal = new ResideStateDAL();
            public DataTable SRoom()
            {
                return dal.SRoom();
            }
        }
    复制代码
    复制代码
     public class RoomBLL
        {
            RoomDAL dal = new RoomDAL();
            public DataTable Room()
            {
                return dal.Room();
            }
    
            public DataTable Room(Room room)
            {
                return dal.Room(room);
            }
    
            public bool URoom(Room room)
            {
                return dal.URoom(room);
            }
    
            public bool DRoom(int roomid)
            {
                return dal.DRoom(roomid);
            }
    
            public bool IRoom(Room room)
            {
                return dal.IRoom(room);
            }
        }
    复制代码
    复制代码
    public class RoomStateBLL
        {
            RoomStateDAL dal = new RoomStateDAL();
            public List<Room> SRoom()
            {
                return dal.SRoom();
            }
        }
    复制代码
    复制代码
     public class RoomTypeBLL
        {
            RoomTypeDAL dal = new RoomTypeDAL();
            public DataTable Room()
            {
                return dal.Room();
            }
    
            public DataTable Room(RoomType type)
            {
                return dal.Room(type);
            }
    
            public bool IRoom(RoomType type)
            {
                return dal.IRoom(type);
            }
    
            public bool URoom(RoomType types)
            {
                return dal.URoom(types);
            }
    
            public bool DRoom(int typeid)
            {
                return dal.DRoom(typeid);
            }
    
            public List<Room> Romm(int typeid)
            {
               return dal.Romm(typeid);
            }
        }
    复制代码

    表示层UI:
    房间管理窗体:

    复制代码
     public partial class FrmInfo : Form
        {
            public FrmInfo()
            {
                InitializeComponent();
            }
            RoomBLL bll = new RoomBLL();
            Room room = new Room();
            RoomTypeBLL tbl = new RoomTypeBLL();
            private void FrmInfo_Load(object sender, EventArgs e)
            {
                cbo01.ValueMember = "TypeId";
                cbo01.DisplayMember = "TypeName";
                cbo01.DataSource=tbl.Room();
                dgvList.DataSource = bll.Room();
            }
    
            private void btncx_Click(object sender, EventArgs e)
            {
               if(txt01.Text=="")
                {
                    dgvList.DataSource = bll.Room();
                }
               else
                {
                    room.RoomID = Convert.ToInt32(txt01.Text);
                    dgvList.DataSource = bll.Room(room);
                }
               
            }
    
            private void 修改ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                txt02.Text = dgvList.SelectedRows[0].Cells[1].Value.ToString();
                cbo01.Text = dgvList.SelectedRows[0].Cells[3].Value.ToString();
                txt03.Text = dgvList.SelectedRows[0].Cells[4].Value.ToString();
            }
    
            private void btn02_Click(object sender, EventArgs e)
            {
                if (txt02.Text == "" || txt03.Text =="")
                {
                    MessageBox.Show("请填写完整的信息");
                }
                else
                {
                    room.RoomID = Convert.ToInt32(dgvList.SelectedRows[0].Cells[0].Value);
                    room.BedNum = Convert.ToInt32(txt02.Text);
                    room.Description = txt03.Text;
                    room.RoomTypeID = Convert.ToInt32(cbo01.SelectedValue);
                    bool flag = bll.URoom(room);
                    if (flag)
                    {
                        MessageBox.Show("修改成功");
                        dgvList.DataSource = bll.Room();
                        foreach (Control item in gb02.Controls)
                        {
                            if (item is TextBox)
                            {
                                item.Text = "";
                            }
                            cbo01.Text = "标准间";
                        }
                    }
                }
               
            }
            int roomid;
            private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                roomid = Convert.ToInt32(dgvList.SelectedRows[0].Cells[0].Value);
                bool flag=bll.DRoom(roomid);
                if(flag)
                {
                    MessageBox.Show("删除成功");
                    dgvList.DataSource = bll.Room();
                    foreach (Control item in gb02.Controls)
                    {
                        if (item is TextBox)
                        {
                            item.Text = "";
                        }
                        cbo01.Text = "标准间";
                    }
                }
            }
    
            private void 新增ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if (txt02.Text == "" || txt03.Text == "")
                {
                    MessageBox.Show("请填写完整的信息");
                }
                else
                {
                    room.BedNum = Convert.ToInt32(txt02.Text);
                    room.Description = txt03.Text;
                    room.RoomTypeID = Convert.ToInt32(cbo01.SelectedValue);
                    bool flag = bll.IRoom(room);
                    if (flag)
                    {
                        MessageBox.Show("添加成功");
                        dgvList.DataSource = bll.Room();
                        foreach (Control item in gb02.Controls)
                        {
                            if (item is TextBox)
                            {
                                item.Text = "";
                            }
                            cbo01.Text = "标准间";
                        }
                    }
                }
              
            }
    
            private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                Application.Exit();
            }
        }
    复制代码

    入住信息和退房窗体:

    复制代码
     public partial class FrmRoom : Form
        {
            public FrmRoom()
            {
                InitializeComponent();
            }
            ResideStateBLL bll = new ResideStateBLL();
            GuestRecordBLL rbl = new GuestRecordBLL();
            GuestRecord guest = new GuestRecord();
            private void FrmRoom_Load(object sender, EventArgs e)
            {
                cbo01.Items.Add("全部");
                cbo01.SelectedIndex = 0;
                cbo01.ValueMember = "ResideId";
                cbo01.DisplayMember = "ResideName";
                cbo01.DataSource=bll.SRoom();
    
                dgvList.DataSource = rbl.SRoom();
            }
    
            private void btn01_Click(object sender, EventArgs e)
            {
                if (cbo01.Text == "全部")
                {
                    dgvList.DataSource = rbl.SRoom();
                }
                else
                {
                    string time1 = (dt01.Value).ToString();
                    string time2 = (dt02.Value).ToString();
                    int id = Convert.ToInt32(cbo01.SelectedValue);
                    dgvList.DataSource = rbl.SRoom(time1, time2, id);
                }
                
            }
    
            private void btn02_Click(object sender, EventArgs e)
            {
                
                guest.GuestID= Convert.ToInt32(dgvList.SelectedRows[0].Cells[0].Value);
                guest.LeaveDate = ldate;
                guest.TotalMoney = Convert.ToDecimal(txt01.Text);
                bool flag =rbl.URoom(guest);
                txt01.Text = "";
                if (flag)
                {
                    dgvList.DataSource = rbl.SRoom();
                }
              
            }
            DateTime ldate;
          
            private void dgvList_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
            {
                if(dgvList.SelectedRows[0].Cells[5].Value.ToString().Trim()=="未结账")
                {
                    DateTime rdate = Convert.ToDateTime(dgvList.SelectedRows[0].Cells[3].Value);
                    ldate = DateTime.Today;
                    int day = ldate.Subtract(rdate).Days;
                    int price = Convert.ToInt32(dgvList.SelectedRows[0].Cells[10].Value);
                    txt01.Text = (day * price).ToString();
                }
                else
                {
                    MessageBox.Show("已经结账");
                }
               
            }
        }
    复制代码

    树状结构查看房间状态:

    复制代码
     public partial class FrmRType : Form
        {
            public FrmRType()
            {
                InitializeComponent();
            }
            RoomTypeBLL bll = new RoomTypeBLL();
            private void FrmRType_Load(object sender, EventArgs e)
            {
                TreeNode tn = new TreeNode("房间类型");
                DataTable table= bll.Room();
                foreach (DataRow item in table.Rows)
                {
                    TreeNode node = new TreeNode();
                    node.Text = item["TypeName"].ToString();
                    node.Tag = item["TypeId"];
                    tn.Nodes.Add(node);
                }
                tvList.Nodes.Add(tn);
            }
    
            private void tvList_AfterSelect(object sender, TreeViewEventArgs e)
            {
                if(tvList.SelectedNode.Level==0)
                {
                    return;
                }
                if(tvList.SelectedNode.Level==1)
                {
                   int id= Convert.ToInt32(tvList.SelectedNode.Tag);
                   List<Room> list=bll.Romm(id);
                    lvList.Items.Clear();
                    foreach (Room  item in list)
                    {
                        ListViewItem iten = new ListViewItem();
                        iten.Text = item.RoomID.ToString();
                        iten.Tag = item;
                        lvList.Items.Add(iten);
                    }
                }
    
            }
        }
    复制代码

    房间类型管理:

    复制代码
        public partial class FrmType : Form
        {
            public FrmType()
            {
                InitializeComponent();
            }
            RoomTypeBLL bll = new RoomTypeBLL();
            RoomType type = new RoomType();
            private void FrmType_Load(object sender, EventArgs e)
            {
                dgvList.DataSource = bll.Room();
            }
    
            private void btncx_Click(object sender, EventArgs e)
            {
                if(txt01.Text=="")
                {
                    dgvList.DataSource = bll.Room();
                }
                else
                {   
                    type.TypeName = txt01.Text;
                    dgvList.DataSource = bll.Room(type);
                }   
            }
    
            private void btn02_Click(object sender, EventArgs e)
            {
                if (txt02.Text == ""||txt03.Text=="")
                {
                    MessageBox.Show("请选择要修改的文本");
                }
                else
                {
                    type.TypeID = Convert.ToInt32(dgvList.SelectedRows[0].Cells[0].Value);
                    type.TypeName = txt02.Text;
                    type.TypePrice = Convert.ToDecimal(txt03.Text);
                    bool flag = bll.URoom(type);
                    if (flag)
                    {
                        MessageBox.Show("修改成功");
                        dgvList.DataSource = bll.Room();
                        foreach (Control item in gb02.Controls)
                        {
                            if (item is TextBox)
                            {
                                item.Text = "";
                            }
                        }
                    }
                }
               
            }
    
            private void 新增ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if (txt02.Text == "" || txt03.Text == "")
                {
                    MessageBox.Show("请填写完整的信息");
                }
                else
                {
                    type.TypeName = txt02.Text;
                    type.TypePrice = Convert.ToInt32(txt03.Text);
                    bool flag = bll.IRoom(type);
                    if (flag)
                    {
                        MessageBox.Show("添加成功");
                        dgvList.DataSource = bll.Room();
                        foreach (Control item in gb02.Controls)
                        {
                            if (item is TextBox)
                            {
                                item.Text = "";
                            }
    
                        }
                    }
                }
               
            }
    
            private void 修改ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                txt02.Text = dgvList.SelectedRows[0].Cells[1].Value.ToString();
                txt03.Text= dgvList.SelectedRows[0].Cells[2].Value.ToString();
            }
    
            private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                int typeid = Convert.ToInt32(dgvList.SelectedRows[0].Cells[0].Value);
               
                bool flag=bll.DRoom(typeid);
                if(flag)
                {
                    MessageBox.Show("删除成功");
                    dgvList.DataSource = bll.Room();
                    foreach (Control item in gb02.Controls)
                    {
                        if (item is TextBox)
                        {
                            item.Text = "";
                        }
    
                    }
                }
            }
    
            private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                Application.Exit();
            }
        }
    复制代码

    顾客入店登记窗体:

    复制代码
     public partial class FrmUser : Form
        {
            public FrmUser()
            {
                InitializeComponent();
            }
            RoomStateBLL bll = new RoomStateBLL();
            GuestRecordBLL gbl = new GuestRecordBLL();
            private void FrmUser_Load(object sender, EventArgs e)
            {
                cbo01.DisplayMember = "Roomid";
                List<Room> list=bll.SRoom();
                foreach (Room item in list)
                {
                    cbo01.Items.Add(item.RoomID+"号房(床位:"+item.BedNum+")");
                }
            }
    
            private void btn01_Click(object sender, EventArgs e)
            {
                if(txt01.Text==""||txt02.Text==""||txt03.Text=="")
                {
                    MessageBox.Show("请填写完整的信息");
                }
                else
                {
                    GuestRecord guest = new GuestRecord();
                    guest.IdentityID = txt01.Text;
                    guest.GuestName = txt02.Text;
                    guest.Deposit = Convert.ToDecimal(txt03.Text);
                    int length=cbo01.Text.IndexOf("号");
                    guest.RoomID = Convert.ToInt32(cbo01.Text.Substring(0,length));
                    guest.ResideDate = Convert.ToDateTime(dt01.Text);
                    bool flag = gbl.IGuest(guest);
                    if (flag)
                    {
                        MessageBox.Show("登记成功");
                        foreach (Control item in gb01.Controls)
                        {
                            if (item is TextBox)
                            {
                                item.Text = "";
                            }
                            cbo01.Text = "";
                            dt01.Text = "";
                        }
                        cbo01.Items.Clear();
                        cbo01.DisplayMember = "Roomid";
                        List<Room> list = bll.SRoom();
                        foreach (Room item in list)
                        {
                            cbo01.Items.Add(item.RoomID + "号房(床位:" + item.BedNum + ")");
                        }
                    }
                }
               
            }
        }
    复制代码
  • 相关阅读:
    ubuntu:activate root
    C/C++ char* arr与char arr[]的区别(反汇编解析)
    [转]关于编写Nios II的延时函数的一点心得
    [转]Xilinx Vivado的使用详细介绍(1):创建工程、编写代码、行为仿真、Testbench
    [转]Vivado中IP的使用方法
    [转]Vivado IP核生成设置
    [转]VHDL中数据类型转换与移位(STD_LOGIC_ARITH与NUMERIC_STD)
    [转]Vivado与SDK的联合调试方法-使用ILA
    [转]Vivado中ILA的使用
    [转]vivado硬件调试——mark_debug
  • 原文地址:https://www.cnblogs.com/xieweikai/p/6826552.html
Copyright © 2011-2022 走看看