📄 roomsettingform.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using HotelManagerBLL;
using HotelManagerModels;
namespace HotelManager
{
public partial class RoomSettingForm : Form
{
RoomBLL bll = new RoomBLL();
private int i = 0;//通过变量来判断要实现的功能: 1,添加 2,修改
private int x = 0;
public static int IsFormOpen = 0;//判断窗体是否打开,0没打开,1,打开
public RoomSettingForm()
{
IsFormOpen = 1;
InitializeComponent();
}
public RoomSettingForm(int i)
{
x = i;
IsFormOpen = 1;
InitializeComponent();
}
private void RoomSettingForm_Load(object sender, EventArgs e)
{
if (x == 2)
{
tsBtnDelete.Visible = false;
}
panInfo.Visible = false;
try
{
//取出所有房间信息
List<Room> list = bll.SelectRoomsAll();
dataGridView1.DataSource = list;
//把类型编号和名称绑定到combox上
List<RoomType> typelist = bll.SelectRoomType();
cboTypeID.DataSource = typelist;//设置combox的数据源
cboTypeID.DisplayMember = "TypeName";
cboTypeID.ValueMember = "TypeID";
cboTypeID.Text = typelist[0].TypeName;//设置默认值
//将房间状态邦定到combox上
RoomStatusBLL statusbll = new RoomStatusBLL();
List<RoomStatus> statusList = statusbll.SelectRoomStatus();
cboState.DataSource = statusList;
cboState.DisplayMember = "Status";
cboState.ValueMember = "Id";
cboState.Text = statusList[0].Status;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void tsBntAdd_Click(object sender, EventArgs e)
{
//添加按钮,改变控件状态
this.ClientSize = new System.Drawing.Size(625, 438);
panInfo.Visible = true;
panInfo.Enabled = true;
txtBedNumber.Text = "";
txtDescription.Text = "";
txtGuestNumber.Text = "";
txtNumber.Text = "";
i = 1;
}
private void btnSearch_Click(object sender, EventArgs e)
{
string number = txtSearch.Text.ToString().Trim();
try
{
//模糊查询
List<Room> list = bll.SelectRoomsByRoomNumber(number);
dataGridView1.DataSource = list;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
this.ClientSize = new System.Drawing.Size(625, 438);
panInfo.Visible = true;
panInfo.Enabled = false;
int roomID = Convert.ToInt32(dataGridView1.CurrentRow.Cells["RoomID"].Value);
try
{
//根据选中的行,查到房间详细信息
List<Room> list = bll.SelectRoomByRoomID(roomID);
foreach (Room r in list)
{
txtNumber.Text = r.Number;
txtGuestNumber.Text = r.GuestNumber.ToString();
txtBedNumber.Text = r.BedNumber.ToString();
RoomStatus rs = new RoomStatus();
rs = r.State;//实体变量为对象类型
Console.WriteLine(rs.Status.ToString());
cboState.SelectedValue = rs.ID;
cboTypeID.SelectedValue = r.TypeID;//设置combox选中的值
txtDescription.Text = r.Description;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void cboTypeID_SelectedIndexChanged(object sender, EventArgs e)
{
string typeName = cboTypeID.Text.ToString();
try
{
//根据选中的房间类型来确定房间价格
float price = bll.SelectTypePriceByTypeName(typeName);
txtPrice.Text = price.ToString();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void tsBtnSave_Click(object sender, EventArgs e)
{
if (i == 1)//添加
{
Room room = new Room();
room.Number = txtNumber.Text;
room.TypeID = Convert.ToInt32(cboTypeID.SelectedValue.ToString());
room.BedNumber = Convert.ToInt32(txtBedNumber.Text);
room.Description = txtDescription.Text;
room.GuestNumber = Convert.ToInt32(txtGuestNumber.Text);
//对象类型有点麻烦
RoomStatus rs = new RoomStatus();
rs.ID = Convert.ToInt32(cboState.SelectedValue);
room.State = rs;
try
{
bll.InsertRomm(room);
//刷新
List<Room> list = bll.SelectRoomsAll();
dataGridView1.DataSource = list;
panInfo.Enabled = false;
i = 0;//重置状态
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//修改信息
if (i == 2)
{
Room room = new Room();
room.Number = txtNumber.Text;
room.TypeID = Convert.ToInt32(cboTypeID.SelectedValue.ToString());
room.BedNumber = Convert.ToInt32(txtBedNumber.Text);
room.Description = txtDescription.Text;
room.GuestNumber = Convert.ToInt32(txtGuestNumber.Text);
RoomStatus rs = new RoomStatus();
rs.ID = Convert.ToInt32(cboState.SelectedValue);
room.State = rs;
room.RoomID = Convert.ToInt32(dataGridView1.CurrentRow.Cells["RoomID"].Value);
try
{
bll.UpdateRoomByBoomID(room);
//刷新
List<Room> list = bll.SelectRoomsAll();
dataGridView1.DataSource = list;
panInfo.Enabled = false;
i = 0;//重置状态
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
private void tsBntUpdate_Click(object sender, EventArgs e)
{
this.ClientSize = new System.Drawing.Size(625, 438);
panInfo.Visible = true;
panInfo.Enabled = true;
i = 2;
//根据选中行,查出要修改的信息
this.ClientSize = new System.Drawing.Size(625, 438);
panInfo.Visible = true;
panInfo.Enabled = true;
int roomID = Convert.ToInt32(dataGridView1.CurrentRow.Cells["RoomID"].Value);
try
{
List<Room> list = bll.SelectRoomByRoomID(roomID);
foreach (Room r in list)
{
txtNumber.Text = r.Number;
txtGuestNumber.Text = r.GuestNumber.ToString();
txtBedNumber.Text = r.BedNumber.ToString();
RoomStatus rs = new RoomStatus();
rs = r.State;
cboState.SelectedItem = rs.ID;
txtDescription.Text = r.Description;
cboTypeID.SelectedValue = r.TypeID;//设置combox选中的值
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void tsBtnDelete_Click(object sender, EventArgs e)
{
DialogResult dr = MessageBox.Show("确定要删除吗?", "友情提示一下", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dr == DialogResult.Yes)
{
//根据编号删除信息
int roomID = Convert.ToInt32(dataGridView1.CurrentRow.Cells["RoomID"].Value);
try
{
bll.DeleteRoomByRoomID(roomID);
//刷新dataGridView1
List<Room> list = bll.SelectRoomsAll();
dataGridView1.DataSource = list;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
private void tsBtnCancel_Click(object sender, EventArgs e)
{
RoomSettingForm_Load(sender, e);//取消按钮条用加载事件
}
private void tsBtnExit_Click(object sender, EventArgs e)
{
IsFormOpen = 0;
this.Close();
}
private void RoomSettingForm_FormClosing(object sender, FormClosingEventArgs e)
{
IsFormOpen = 0;
}
private void txtGuestNumber_TextChanged(object sender, EventArgs e)
{
Regex r = new Regex("^[0-9]{1,}$");
if (!r.IsMatch(this.txtGuestNumber.Text))
{
//txtGuestNumber.Text = "";
MessageBox.Show("请输入数字");
}
}
private void txtBedNumber_TextChanged(object sender, EventArgs e)
{
Regex r = new Regex("^[0-9]{1,}$");
if (!r.IsMatch(this.txtBedNumber.Text))
{
//txtBedNumber.Text = "";
MessageBox.Show("请输入数字");
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -