餐饮管理之开台
2016-05-25 16:07
295 查看
开台主要有两个功能,对已开台的管理和新增开台,
一 开台表的设计
此表名为'开台表',属性有编号,名称,服务员,人数,日期.编号是每台桌子的编号,唯一不为空,设置为主键,需从桌台管理表中查询,名称,相当于每台桌子的位置,服务员,在开台时可指派服务员,须从服务员对应的表中查询,人数为此桌有多少人,日期可自己制定,默认为当前时间.
表格显示效果如下:
![](https://images2015.cnblogs.com/blog/927858/201605/927858-20160515111210195-673780018.png)
在主界面的开台菜单下可选择进入开台表界面或开台
效果如下:
![](https://images2015.cnblogs.com/blog/927858/201605/927858-20160515112001773-1167632269.png)
二 新增开台
界面设计
![](https://images2015.cnblogs.com/blog/927858/201605/927858-20160515112205570-705783245.png)
开台需要添加桌号,服务员和人数信息,桌号和服务员都有下拉框,在开台页面初始化的过程中会将空闲桌号加入到桌号下拉框中,服务员的下拉框一样,便于用户操作.
初始化的过程代码
加入数据库
确认添加后数据会加入开台表中,代码如下
连接数据库,并将插入的信息保存在字符串中.
需要对插入的信息进行判断是否合格,都合格后插入开台表,并更新'桌台信息'表中该桌台的状态为占用.插入成功后需要跳出插入成功的提示.最后要关闭数据库.
成功开台后,跳到选菜的界面.
三 开台表界面
![](https://images2015.cnblogs.com/blog/927858/201605/927858-20160515114048242-29930844.png)
开台界面的主要功能有显示开台信息,查询,删除等,开台表中的编号栏也有下拉框,其中的信息为所有已开台的编号.
开台表初始化代码
搜索开台表将所有开台的编号加入到下拉框中,最后关闭数据库.
查询操作的显示及代码
开台界面的查询操作是在所有已开台的桌子中进行查询,查到相应桌子后需要对开台表中对应的一栏进行标蓝便于用户看见,效果如下图
![](https://images2015.cnblogs.com/blog/927858/201605/927858-20160515115613352-1754328247.png)
查询操作的相应代码如下
此操作无需查询数据库,在该开台界面显示的开台表中查询即可,若未找到会报出相应的提示.
取消开台及刷新
取消开台不仅仅是在该开台表中删除相应开台信息,还涉及其他表的一些信息的改变,如桌台信息表中该编号相应的状态信息要进行更新操作.
取消开台的代码如下:
刷新操作的代码如下
一 开台表的设计
此表名为'开台表',属性有编号,名称,服务员,人数,日期.编号是每台桌子的编号,唯一不为空,设置为主键,需从桌台管理表中查询,名称,相当于每台桌子的位置,服务员,在开台时可指派服务员,须从服务员对应的表中查询,人数为此桌有多少人,日期可自己制定,默认为当前时间.
表格显示效果如下:
![](https://images2015.cnblogs.com/blog/927858/201605/927858-20160515111210195-673780018.png)
在主界面的开台菜单下可选择进入开台表界面或开台
效果如下:
![](https://images2015.cnblogs.com/blog/927858/201605/927858-20160515112001773-1167632269.png)
二 新增开台
界面设计
![](https://images2015.cnblogs.com/blog/927858/201605/927858-20160515112205570-705783245.png)
开台需要添加桌号,服务员和人数信息,桌号和服务员都有下拉框,在开台页面初始化的过程中会将空闲桌号加入到桌号下拉框中,服务员的下拉框一样,便于用户操作.
初始化的过程代码
private void OpenForm_Load(object sender, EventArgs e) { string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; "; SqlConnection conn = new SqlConnection(strConn); conn.Open(); String sqlcommond = String.Format(@"select * from 桌台信息 where 状态 ='空闲'"); SqlCommand cmd = new SqlCommand(sqlcommond, conn); //对SQL或存储过程执行后返回的“结果”进行操作 SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { comboBox1.Items.Add(dr["编号"].ToString()); } dr.Close(); String sqlcommondwork = String.Format(@"select * from 员工信息"); SqlCommand cmdwork = new SqlCommand(sqlcommondwork, conn); //对SQL或存储过程执行后返回的“结果”进行操作 SqlDataAdapter dawork = new SqlDataAdapter(); da.SelectCommand = cmdwork; SqlDataReader drwork = cmdwork.ExecuteReader(); while (drwork.Read()) { comboBox2.Items.Add(drwork["员工姓名"].ToString()); } drwork.Close(); conn.Close(); }
加入数据库
确认添加后数据会加入开台表中,代码如下
string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; "; SqlConnection conn = new SqlConnection(strConn); conn.Open(); String strcout = comboBox1.Text; String strpeoname = comboBox2 .Text; String strpeocout = textBox2.Text; String strdate = "";
连接数据库,并将插入的信息保存在字符串中.
if (strcout == "") { MessageBox.Show("请输入要开台的编号!"); } else if (strpeoname == "") { MessageBox.Show("请输入服务员姓名!"); } else { String sqlcommond = string.Format(@"select * from 桌台信息 where 编号 ='" + strcout + "'"); SqlCommand cmd = new SqlCommand(sqlcommond, conn); //对SQL或存储过程执行后返回的“结果”进行操作 SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; SqlDataReader dr = cmd.ExecuteReader(); if (!dr.Read()) { MessageBox.Show("没有该桌号!"); } else if (dr["状态"].ToString().Equals("占用")) { MessageBox.Show("该桌号非空闲"); } else { String strname = dr["名称"].ToString(); strdate = DateTime.Now.ToString(); dr.Close(); String sqlcommond2 = string.Format(@"insert into 开台表(编号,名称,服务员,人数,日期) values('" + strcout + "','" + strname + "','" + strpeoname + "','" + strpeocout + "','" + strdate + "')"); SqlCommand cmd2 = new SqlCommand(sqlcommond2, conn); cmd2.ExecuteNonQuery(); String sqlcommond3 = string.Format(@"update 桌台信息 set 状态='占用' where 编号='" + strcout + "'"); SqlCommand cmd3 = new SqlCommand(sqlcommond3, conn); cmd3.ExecuteNonQuery(); MessageBox.Show(strcout + "号开台成功"); } conn.Close();
需要对插入的信息进行判断是否合格,都合格后插入开台表,并更新'桌台信息'表中该桌台的状态为占用.插入成功后需要跳出插入成功的提示.最后要关闭数据库.
Order ord = new Order(); ord.desknum = comboBox1.Text.Trim(); ord.servername = comboBox2.Text.Trim(); ord.peocount = Convert.ToInt32(textBox2.Text.Trim()); ord.time = strdate; ord.Show();
成功开台后,跳到选菜的界面.
三 开台表界面
![](https://images2015.cnblogs.com/blog/927858/201605/927858-20160515114048242-29930844.png)
开台界面的主要功能有显示开台信息,查询,删除等,开台表中的编号栏也有下拉框,其中的信息为所有已开台的编号.
开台表初始化代码
private void Opentable_Load(object sender, EventArgs e) { string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; "; SqlConnection conn = new SqlConnection(strConn); conn.Open(); String sqlcommond = "select * from 开台表"; SqlCommand cmd = new SqlCommand(sqlcommond, conn); //对SQL或存储过程执行后返回的“结果”进行操作 SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; SqlDataReader dr = cmd.ExecuteReader(); listView1.Items.Clear();//再次 comboBox1.Items.Clear(); while (dr.Read()) { //MessageBox.Show("1111"); //构建一个ListView的数据,存入数据库数据,以便添加到listView1的行数据中 ListViewItem it = new ListViewItem(); it.Text = dr["编号"].ToString(); it.SubItems.Add(dr["名称"].ToString()); it.SubItems.Add(dr["服务员"].ToString()); it.SubItems.Add(dr["人数"].ToString()); it.SubItems.Add(dr["日期"].ToString()); //将lt数据添加到listView1控件中 listView1.Items.Add(it); comboBox1.Items.Add(dr["编号"].ToString()); } conn.Close(); }
搜索开台表将所有开台的编号加入到下拉框中,最后关闭数据库.
查询操作的显示及代码
开台界面的查询操作是在所有已开台的桌子中进行查询,查到相应桌子后需要对开台表中对应的一栏进行标蓝便于用户看见,效果如下图
![](https://images2015.cnblogs.com/blog/927858/201605/927858-20160515115613352-1754328247.png)
查询操作的相应代码如下
private void button3_Click(object sender, EventArgs e) { Boolean flag = false; for(int i=0;i<listView1.Items.Count;i++) { if (listView1.Items[i].SubItems[0].Text.IndexOf(comboBox1.Text.Trim()) >= 0) { flag = true; listView1.Items[i].Selected = true; listView1.Items[i].EnsureVisible(); listView1.Items[oldread].BackColor = Color.White; listView1.Items[i].BackColor = Color.Blue; oldread = i; break; } } if(!flag) { MessageBox.Show("未找到该桌号"); } }
此操作无需查询数据库,在该开台界面显示的开台表中查询即可,若未找到会报出相应的提示.
取消开台及刷新
取消开台不仅仅是在该开台表中删除相应开台信息,还涉及其他表的一些信息的改变,如桌台信息表中该编号相应的状态信息要进行更新操作.
取消开台的代码如下:
private void button4_Click_1(object sender, EventArgs e) { if (listView1.SelectedItems.Count > 0) { string desknum = listView1.SelectedItems[0].SubItems[0].Text; string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; "; SqlConnection conn = new SqlConnection(strConn); conn.Open(); //删除桌台表中的相关信息 string sqlcommondkaitai = string.Format(@"delete from 开台表 where 编号 = '" + desknum + "'"); SqlCommand cmd = new SqlCommand(sqlcommondkaitai, conn); SqlDataReader sr = cmd.ExecuteReader(); sr.Close(); //删除点菜信息中的相关信息 string sqlcommondorder = string.Format(@"delete from 点菜信息 where 桌台位置 = '" + desknum + "'"); SqlCommand cmdorder = new SqlCommand(sqlcommondorder, conn); SqlDataReader srorder = cmdorder.ExecuteReader(); srorder.Close(); //删除具体点菜信息中的相关信息 string sqlcommondorder1 = string.Format(@"delete from 具体点菜信息 where 桌台位置 = '" + desknum + "'"); SqlCommand cmdorder1 = new SqlCommand(sqlcommondorder1, conn); SqlDataReader srorder1 = cmdorder.ExecuteReader(); srorder1.Close(); //修改桌台信息表中相应的信息由占用到空闲 int desk = Convert.ToInt32(desknum); String sqlcommond3 = string.Format(@"update 桌台信息 set 状态='空闲' where 编号= '"+desk+"' "); SqlCommand cmd3 = new SqlCommand(sqlcommond3, conn); SqlDataReader sr3 = cmd3.ExecuteReader(); sr3.Close(); conn.Close(); //删除选择项 int lisnum = listView1.Items.IndexOf(listView1.FocusedItem); listView1.Items.Remove(listView1.Items[lisnum]); } else { MessageBox.Show("请选择你要删除的桌台!"); } }
刷新操作的代码如下
private void button1_Click(object sender, EventArgs e) { string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; "; SqlConnection conn = new SqlConnection(strConn); conn.Open(); String sqlcommond = "select * from 开台表"; SqlCommand cmd = new SqlCommand(sqlcommond, conn); //对SQL或存储过程执行后返回的“结果”进行操作 SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; SqlDataReader dr = cmd.ExecuteReader(); listView1.Items.Clear();//再次 comboBox1.Items.Clear(); while (dr.Read()) { //MessageBox.Show("1111"); //构建一个ListView的数据,存入数据库数据,以便添加到listView1的行数据中 ListViewItem it = new ListViewItem(); it.Text = dr["编号"].ToString(); it.SubItems.Add(dr["名称"].ToString()); it.SubItems.Add(dr["服务员"].ToString()); it.SubItems.Add(dr["人数"].ToString()); it.SubItems.Add(dr["日期"].ToString()); //将lt数据添加到listView1控件中 listView1.Items.Add(it); comboBox1.Items.Add(dr["编号"].ToString()); } conn.Close(); }
相关文章推荐
- Android 仿通讯录A-Z侧边索引查询 LetterListView androidstudio
- virtual应用于构造函数和析构函数的用途
- jquery分隔Url的param方法(推荐)
- 关于从浏览器到数据库之间的网络连接
- Java多态 转型
- 同步阻塞式IO(BIO)--学习笔记
- DNS原理及其解析过程剖析
- 误删除Exchange默认的会议室如何恢复?
- 学会这9招,你也能成为演讲高手
- 数据库查询时间过长原因
- 图片 + 时间节点 合成 视频。
- byte为什么要与上0xff?
- 新手pyhoner的指定内容读取和写入的思路
- Yii2如何使用存取控制过滤器(ACF)
- 面向对象——类的定义
- 求两个集合的交集、差集和并集
- MySql 5.7:忘记root密码的登录方法
- 项目参数外部配置化
- xilinx sdk debug 无法进入main函数解决方法
- 微电影大赛二等奖