📄 registerform.cs
字号:
//文件名:RegisterForm.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace MyHotel
{
public partial class RegisterForm : Form
{
public RegisterForm()
{
InitializeComponent();
}
public string MyOperator;
public String MyCompany;
private void RegisterForm_Load(object sender, EventArgs e)
{
//添加酒店房间类别ComboBox控件的列表项
SqlConnection MyConnection = new SqlConnection();
MyConnection.ConnectionString = global::MyHotel.Properties.Settings.Default.MyHotelConnectionString;
MyConnection.Open();
SqlCommand MyCommand = new SqlCommand("Select DISTINCT 类别 From 酒店房间 ", MyConnection);
SqlDataReader MyReader = MyCommand.ExecuteReader();
while (MyReader.Read())
{
this.酒店房间类别ComboBox.Items.Add(MyReader.GetString(0));
}
this.酒店房间类别ComboBox.Items.Add("所有房间");
this.酒店房间类别ComboBox.Text = "所有房间";
if (MyConnection.State == ConnectionState.Open)
{
MyConnection.Close();
}
}
private void 酒店房间类别ComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
//获取未完全入住房间信息
this.酒店可用房间DataGridView.GridColor = Color.Blue;
String MySQLConnectionString = global::MyHotel.Properties.Settings.Default.MyHotelConnectionString;
string MySQL = "Select 房号,单价,可容纳人数-已入住人数 as 可入住人数,楼层,类别,说明,可容纳人数,已入住人数 From 酒店房间 Where 类别='" + this.酒店房间类别ComboBox.Text + "' AND 可容纳人数>已入住人数";
if (this.酒店房间类别ComboBox.Text == "所有房间")
{
MySQL = "Select 房号,单价,可容纳人数-已入住人数 as 可入住人数,楼层,类别,说明,可容纳人数,已入住人数 From 酒店房间 Where 可容纳人数>已入住人数 ";
}
SqlConnection MyConnection = new SqlConnection(MySQLConnectionString);
MyConnection.Open();
DataTable MyTable = new DataTable();
SqlDataAdapter MyAdapter = new SqlDataAdapter(MySQL, MyConnection);
MyAdapter.Fill(MyTable);
this.酒店可用房间DataGridView.DataSource = MyTable;
if (MyConnection.State == ConnectionState.Open)
{
MyConnection.Close();
}
}
private void 酒店可用房间DataGridView_Click(object sender, EventArgs e)
{
//确定是否设置房号和住宿人数信息
this.房号TextBox.Text = this.酒店可用房间DataGridView.CurrentRow.Cells[0].Value.ToString();
this.折扣价格TextBox.Text = this.酒店可用房间DataGridView.CurrentRow.Cells[1].Value.ToString();
int MyCount = Convert.ToInt16(this.酒店可用房间DataGridView.CurrentRow.Cells[2].Value.ToString());
this.住宿人数ComboBox.Items.Clear();
for (int i = 1; i <= MyCount; i++)
{
this.住宿人数ComboBox.Items.Add(i.ToString());
}
this.住宿人数ComboBox.Text = MyCount.ToString();
}
private void 新增Button_Click(object sender, EventArgs e)
{
this.房号TextBox.Text="";
this.折扣价格TextBox.Text="";
this.预收押金TextBox.Text="";
this.入住日期DateTimePicker.Value=DateTime.Now;
this.离开日期DateTimePicker.Value=DateTime.Now;
this.客人姓名TextBox.Text="";
this.证件名称ComboBox.Text="居民身份证";
this.证件号码TextBox.Text="";
this.证件地址TextBox.Text="";
this.住宿人数ComboBox.Text="0";
this.客人性别ComboBox.Text="男";
this.联系电话TextBox.Text="";
this.操作人员TextBox.Text=this.MyOperator;
//自动计算入住编号
String MySQLConnectionString = global::MyHotel.Properties.Settings.Default.MyHotelConnectionString;
SqlConnection MyConnection = new SqlConnection(MySQLConnectionString);
MyConnection.Open();
SqlCommand MyCommand = MyConnection.CreateCommand();
MyCommand.CommandText = "Select max(入住编号) 最大编号 From 客房入住单";
object MyResult = MyCommand.ExecuteScalar();
Int64 MyID = 1;
if (MyResult != System.DBNull.Value)
{
String MyMaxID = MyResult.ToString().Trim();
MyMaxID = MyMaxID.Substring(2, MyMaxID.Length - 2);
MyID = Convert.ToInt64(MyMaxID) + 1;
}
int MyLength = MyID.ToString().Length;
string MyNewID = "";
switch (MyLength)
{
case 1:
MyNewID = "RZ0000000" + MyID.ToString();
break;
case 2:
MyNewID = "RZ000000" + MyID.ToString();
break;
case 3:
MyNewID = "RZ00000" + MyID.ToString();
break;
case 4:
MyNewID = "RZ0000" + MyID.ToString();
break;
case 5:
MyNewID = "RZ000" + MyID.ToString();
break;
case 6:
MyNewID = "RZ00" + MyID.ToString();
break;
case 7:
MyNewID = "RZ0" + MyID.ToString();
break;
}
if (MyConnection.State == ConnectionState.Open)
{
MyConnection.Close();
}
this.入住编号TextBox.Text = MyNewID;
}
private void 打印Button_Click(object sender, EventArgs e)
{
this.printPreviewDialog1.Document = this.printDocument1;
this.printPreviewDialog1.ShowDialog();
}
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{ //打印入住单
e.Graphics.DrawString(this.MyCompany + "旅客入住单", new Font("宋体", 20), Brushes.Black, 220, 80);
e.Graphics.DrawString("入住编号:" + this.入住编号TextBox.Text , new Font("宋体", 12), Brushes.Black, 100, 150);
DateTime MyPrintTime = DateTime.Now;
e.Graphics.DrawString("打印日期:" + MyPrintTime.ToLongDateString() + MyPrintTime.ToLongTimeString(), new Font("宋体", 12), Brushes.Black, 450, 150);
e.Graphics.DrawLine(new Pen(Color.Black), 100, 180, 720, 180);
e.Graphics.DrawLine(new Pen(Color.Black), 100, 220, 720, 220);
e.Graphics.DrawLine(new Pen(Color.Black), 100, 260, 720, 260);
e.Graphics.DrawLine(new Pen(Color.Black), 100, 300, 720, 300);
e.Graphics.DrawLine(new Pen(Color.Black), 100, 340, 720, 340);
e.Graphics.DrawLine(new Pen(Color.Black), 100, 180, 100, 340);
e.Graphics.DrawLine(new Pen(Color.Black), 220, 180, 220, 340);
e.Graphics.DrawLine(new Pen(Color.Black), 400, 180, 400, 340);
e.Graphics.DrawLine(new Pen(Color.Black), 720, 180, 720, 340);
e.Graphics.DrawString("房号:" + this.房号TextBox.Text, new Font("宋体", 12), Brushes.Black, 105, 190);
e.Graphics.DrawString("姓名:" + this.客人姓名TextBox.Text, new Font("宋体", 12), Brushes.Black, 105, 230);
e.Graphics.DrawString("性别:" + this.客人性别ComboBox.Text, new Font("宋体", 12), Brushes.Black, 105, 270);
e.Graphics.DrawString("人数:" + this.住宿人数ComboBox.Text, new Font("宋体", 12), Brushes.Black, 105, 310);
e.Graphics.DrawString("折扣价格:" + this.折扣价格TextBox.Text, new Font("宋体", 12), Brushes.Black, 225, 190);
e.Graphics.DrawString("预收押金:" + this.预收押金TextBox.Text, new Font("宋体", 12), Brushes.Black, 225, 230);
if (this.入住日期DateTimePicker.Value.ToString().Length > 0)
{
e.Graphics.DrawString("入住日期:" + this.入住日期DateTimePicker.Value.ToString().Remove(10), new Font("宋体", 12), Brushes.Black, 225, 270);
}
if (this.离开日期DateTimePicker.Value.ToString().Length > 0)
{
e.Graphics.DrawString("离开日期:" + this.离开日期DateTimePicker.Value.ToString().Remove(10), new Font("宋体", 12), Brushes.Black, 225, 310);
}
e.Graphics.DrawString("证件名称:" + this.证件名称ComboBox.Text, new Font("宋体", 12), Brushes.Black, 405, 190);
e.Graphics.DrawString("证件编号:" + this.证件号码TextBox.Text, new Font("宋体", 12), Brushes.Black, 405, 230);
e.Graphics.DrawString("证件地址:" + this.证件地址TextBox.Text, new Font("宋体", 12), Brushes.Black, 405, 270);
e.Graphics.DrawString("联系电话:" + this.联系电话TextBox.Text, new Font("宋体", 12), Brushes.Black, 405, 310);
e.Graphics.DrawString("操作员:" + this.操作人员TextBox.Text , new Font("宋体", 12), Brushes.Black, 600, 350);
e.Graphics.DrawString("温馨提示:为了维护您及他人的合法权益,请不要带未经登记的人员进出您的房间。", new Font("宋体", 12), Brushes.Black, 100, 380);
e.Graphics.DrawString("警察提示:请保管好您的物品,重要物品请寄存于酒店寄存处,免费寄存!", new Font("宋体", 12), Brushes.Black, 100, 400);
e.Graphics.DrawString("谢谢合作!", new Font("宋体", 20), Brushes.Black, 550, 420);
}
private void 保存Button_Click(object sender, EventArgs e)
{
if (MessageBox.Show("请检查旅客信息是否正确,一旦保存就无法修改,是否继续?", "信息提示", MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
String MySQLConnectionString = global::MyHotel.Properties.Settings.Default.MyHotelConnectionString;
string MySQL = "INSERT INTO [客房入住单] ([入住编号], [房号], [折扣价格], [预收押金], [入住日期], [离开日期], [客人姓名], [证件名称], [证件号码], [证件地址], [住宿人数], [客人性别], [联系电话], [操作人员]) VALUES (@入住编号, @房号, @折扣价格, @预收押金, @入住日期, @离开日期, @客人姓名,@证件名称, @证件号码, @证件地址, @住宿人数, @客人性别, @联系电话, @操作人员)";
SqlConnection MyConnection = new SqlConnection(MySQLConnectionString);
MyConnection.Open();
SqlCommand MyCommand = MyConnection.CreateCommand();
MyCommand.CommandText =MySQL;
MyCommand.Parameters.Add(new SqlParameter("@入住编号",SqlDbType.VarChar));
MyCommand.Parameters.Add(new SqlParameter("@房号", SqlDbType.VarChar));
MyCommand.Parameters.Add(new SqlParameter("@折扣价格", SqlDbType.Float));
MyCommand.Parameters.Add(new SqlParameter("@预收押金", SqlDbType.Float));
MyCommand.Parameters.Add(new SqlParameter("@入住日期", SqlDbType.DateTime));
MyCommand.Parameters.Add(new SqlParameter("@离开日期", SqlDbType.DateTime ));
MyCommand.Parameters.Add(new SqlParameter("@客人姓名", SqlDbType.VarChar));
MyCommand.Parameters.Add(new SqlParameter("@证件名称", SqlDbType.VarChar));
MyCommand.Parameters.Add(new SqlParameter("@证件号码", SqlDbType.VarChar));
MyCommand.Parameters.Add(new SqlParameter("@证件地址", SqlDbType.VarChar));
MyCommand.Parameters.Add(new SqlParameter("@住宿人数", SqlDbType.Int));
MyCommand.Parameters.Add(new SqlParameter("@客人性别", SqlDbType.VarChar));
MyCommand.Parameters.Add(new SqlParameter("@联系电话", SqlDbType.VarChar));
MyCommand.Parameters.Add(new SqlParameter("@操作人员", SqlDbType.VarChar));
MyCommand.Parameters["@入住编号"].Value = this.入住编号TextBox.Text;
MyCommand.Parameters["@房号"].Value = this.房号TextBox.Text;
MyCommand.Parameters["@折扣价格"].Value = this.折扣价格TextBox.Text ;
MyCommand.Parameters["@预收押金"].Value = this.预收押金TextBox.Text ;
MyCommand.Parameters["@入住日期"].Value = this.入住日期DateTimePicker.Value;
MyCommand.Parameters["@离开日期"].Value = this.离开日期DateTimePicker.Value;
MyCommand.Parameters["@客人姓名"].Value = this.客人姓名TextBox.Text;
MyCommand.Parameters["@证件名称"].Value = this.证件名称ComboBox.Text;
MyCommand.Parameters["@证件号码"].Value = this.证件号码TextBox.Text;
MyCommand.Parameters["@证件地址"].Value = this.证件地址TextBox.Text;
MyCommand.Parameters["@住宿人数"].Value = this.住宿人数ComboBox.Text;
MyCommand.Parameters["@客人性别"].Value = this.客人性别ComboBox.Text;
MyCommand.Parameters["@联系电话"].Value = this.联系电话TextBox.Text ;
MyCommand.Parameters["@操作人员"].Value = this.操作人员TextBox.Text;
MyCommand.ExecuteNonQuery();
MySQL = "Update 酒店房间 Set 已入住人数=已入住人数+" + this.住宿人数ComboBox.Text + " WHERE 房号='" + this.房号TextBox.Text + "'";
MyCommand.CommandText = MySQL;
MyCommand.ExecuteNonQuery();
if (MyConnection.State == ConnectionState.Open)
{
MyConnection.Close();
}
酒店房间类别ComboBox_SelectedIndexChanged(null, null);
新增Button_Click(null, null);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -