⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myhotelroominfoform.cs

📁 酒店管理系统项目内容 包含当前常用的全部功能
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MyHotelIBLL;
using MyHotelBLLFactory;
using MyHotelModel;

namespace MyHotel
{
    public partial class MyHotelRoomInfoForm : Form
    {
        #region 定义变量

        IRoomTypeManager roomTypeManager;
        IRoomTypeCommandManager cmdRoomTypeManager;
        IRoomManager roomManager;
        IRoomCommandManager cmdManager;
        BindingManagerBase manager;
        
        IList<Room> rooms;

        bool searchFlag = false;

        #endregion

        #region 系统事件

        public MyHotelRoomInfoForm()
        {
            InitializeComponent();
            rooms = new List<Room>();
        }

        private void MyHotelRoomInfoForm_Load(object sender, EventArgs e)
        {
            ClearText();

            if (this.txtRoomNumber.Text == "")
            {
                this.tsBtnModify.Enabled = false;
            }
            roomTypeManager = ManagerFactory.CreateRoomTypeManager();

            cmdRoomTypeManager = ManagerFactory.CreateRoomTypeCommandManager();

            roomManager = ManagerFactory.CreateRoomManager();

            cmdManager = ManagerFactory.CreateRoomCommandManager();

            SetTypeNameCob();

            rooms = roomManager.FindAllRooms();

            ShowGridView(rooms);

            this.dgvRoom.AutoGenerateColumns = false;

            searchFlag = false;
        }

        /// <summary>
        /// 数据查询
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSearch_Click(object sender, EventArgs e)
        {
            roomManager = ManagerFactory.CreateRoomManager();

            rooms = roomManager.FindRoomByRoomNumber(this.txtRoomNumberSearch.Text.Trim());
            if (rooms.Count == 0)
            {
                this.epNoData.SetError(this.txtRoomNumberSearch, "没有您要查的房间号!");
                this.dgvRoom.DataSource = null;
            }
            else
            {
                ShowGridView(rooms);
                this.epNoData.Clear();
            }
            searchFlag = true;

            SetTypeNameCob();

            ClearText();
        }

        /// <summary>
        /// 添加数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsBtnAdd_Click(object sender, EventArgs e)
        {
            this.txtRoomNumber.Focus();

            if (this.txtRoomNumber.Text != "")
            {
                roomManager = ManagerFactory.CreateRoomManager();

                IList<Room> roomSearch = roomManager.FindRoomByRoomNumber(this.txtRoomNumber.Text.Trim());

                if (roomSearch.Count == 0)
                {
                    Room room = new Room();

                    room.Number = this.txtRoomNumber.Text.Trim();
                    room.TypeId = Convert.ToInt32(this.cboTypeName.Tag);
                    room.BedNumber = Convert.ToInt32(this.txtBedNumber.Text.Trim());
                    room.Description = this.txtDescription.Text.Trim();
                    room.State = this.cboState.Text;
                    room.GuestNumber = Convert.ToInt32(this.txtGuestNumber.Text.Trim());

                    rooms.Add(room);

                    this.dgvRoom.DataSource = null;

                    this.dgvRoom.DataSource = rooms;

                    cmdManager.CreateAddRoomCommand(room);

                    ClearText();
                    SetTypeNameCob();
                }
                else
                {
                    this.epHaveData.SetError(this.lblRoomNumber, "抱歉,该房间已有人住!");
                }
            }
        }

        /// <summary>
        /// 修改数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsBtnModify_Click(object sender, EventArgs e)
        {
            this.epHaveData.Clear();

            Room room = this.dgvRoom.Rows[this.dgvRoom.SelectedCells[0].RowIndex].DataBoundItem as Room;

            room.Number = this.txtRoomNumber.Text.Trim();
            room.TypeId = Convert.ToInt32(this.cboTypeName.Tag);
            room.BedNumber = Convert.ToInt32(this.txtBedNumber.Text.Trim());
            room.Description = this.txtDescription.Text.Trim();
            room.State = this.cboState.Text;
            room.GuestNumber = Convert.ToInt32(this.txtGuestNumber.Text.Trim());

            this.dgvRoom.DataSource = null;

            this.dgvRoom.DataSource = rooms;

            cmdManager.CreateUpdateRoomCommand(room);

        }

        /// <summary>
        /// 删除数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsBtnDelete_Click(object sender, EventArgs e)
        {
            this.epHaveData.Clear();

            Room room = this.dgvRoom.Rows[this.dgvRoom.SelectedCells[0].RowIndex].DataBoundItem as Room;

            rooms.Remove(room);

            if (rooms.Count <= 0)
            {
                this.tsBtnDelete.Enabled = false;
                this.tsBtnModify.Enabled = false;
            }

            this.dgvRoom.DataSource = null;

            this.dgvRoom.DataSource = rooms;

            cmdManager.CreateDeleteRoomCommand(room.RoomId);

            ClearText();

        }

        /// <summary>
        /// 取消所有操作
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsBtnCancel_Click(object sender, EventArgs e)
        {
            cmdManager.Cancel();

            this.epHaveData.Clear();

            this.dgvRoom.DataSource = null;

            if (searchFlag)
                btnSearch_Click(sender, e);
            else
                MyHotelRoomInfoForm_Load(sender, e);

            this.tsBtnDelete.Enabled = true;
            this.tsBtnModify.Enabled = true;

            ClearText();

        }

        /// <summary>
        /// 保存数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsBtnSave_Click(object sender, EventArgs e)
        {
            cmdManager.SaveAll();

            this.epHaveData.Clear();
            this.dgvRoom.DataSource = null;

            if (searchFlag)
                btnSearch_Click(sender, e);
            else
                MyHotelRoomInfoForm_Load(sender, e);

            SetTypeNameCob();
            ClearText();

        }

        /// <summary>
        /// 选中一行数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgvRoom_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            this.tsBtnModify.Enabled = true;
            this.epHaveData.Clear();

            if (manager.Count <= 0) return;

            Room room = manager.Current as Room;
            RoomType roomType = roomTypeManager.FindRoomTypeById(room.TypeId);

            this.txtRoomNumber.Text = room.Number;
            this.cboTypeName.Text = roomType.TypeName;
            this.txtPrice.Text = roomType.TypePrice.ToString();
            this.txtBedNumber.Text = room.BedNumber.ToString();
            this.txtDescription.Text = room.Description;
            this.cboState.Text = room.State;
            this.txtGuestNumber.Text = room.GuestNumber.ToString();
        }

        /// <summary>
        /// 退出
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsBtnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        #endregion

        #region 自定义方法

        /// <summary>
        /// 数据显示
        /// </summary>
        /// <param name="list"></param>
        public void ShowGridView(IList<Room> list)
        {
            this.dgvRoom.DataSource = list;
            manager = this.dgvRoom.BindingContext[this.dgvRoom.DataSource];
            manager.PositionChanged += new EventHandler(manager_CurrentChanged);
            if (manager.Count > 0)
            {
                manager.Position = -1;
                manager.Position = 0;
            }
        }

        /// <summary>
        /// manager_CurrentChanged
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void manager_CurrentChanged(object sender, EventArgs e)
        {
            this.tsBtnModify.Enabled = true;

            Room room = manager.Current as Room;
            RoomType roomType = roomTypeManager.FindRoomTypeById(room.TypeId);

            this.txtRoomNumber.Text = room.Number;
            this.cboTypeName.Text = roomType.TypeName;
            this.txtPrice.Text = roomType.TypePrice.ToString();
            this.txtBedNumber.Text = room.BedNumber.ToString();
            this.txtDescription.Text = room.Description;
            this.cboState.Text = room.State;
            this.txtGuestNumber.Text = room.GuestNumber.ToString();
        }

        /// <summary>
        /// 房间类型绑定数据
        /// </summary>
        public void SetTypeNameCob() 
        {
            this.cboTypeName.Items.Clear();

            IList<RoomType> types = new List<RoomType>();
            types = roomTypeManager.FindAllRoomTypes();

            for (int i = 0; i < types.Count; i++)
            {
                RoomType type = types[i];
                this.cboTypeName.Tag = type.TypeId.ToString();
                this.cboTypeName.Items.Add(type.TypeName);
            }
        }

        /// <summary>
        /// 清空文本
        /// </summary>
        private void ClearText()
        {
            this.txtRoomNumber.Text = "";
            this.txtPrice.Text = "";
            this.txtBedNumber.Text = "";
            this.txtDescription.Text = "";
            this.cboState.Text = null;
            this.txtGuestNumber.Text = "";
        }

        #endregion

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -