点菜模块是餐馆管理系统的一个重要环节,它主要有两个功能:一是保存客人所点的菜,二是删除点菜。
一.点菜的设计
首先得先把餐馆有的所有菜存储在数据库中,这样才能在表中调用数据库的菜单信息表,点菜界面所要有的属性应和菜单信息表一致,菜单编号,菜系,菜名单价,份数,折扣都得一一对应,然后把所要点的菜选出来,添加到点菜表中即可。点菜从新开台那个地方进去,点菜界面如下图所示:
客人选好需要的菜后,点击确认按钮,就把选好的菜显示在下方,同时保存到数据库中,存储代码如下:
stringordnum=txb_ordernum.Text;stringorderxi=strcaixi;stringordername=txb_ordername.Text;floatorderperprice=float.Parse(txb_perprice.Text);floatorderdiscount=float.Parse(txb_discount.Text);intordertotalnum=Convert.ToInt32(txb_totalnum.Text);//将选菜的具体信息保存在具体点菜信息表中stringstrConn=@"DataSource=.;InitialCatalog=Restaurant;IntegratedSecurity=SSPI;";SqlConnectionconn=newSqlConnection(strConn);conn.Open();stringsqlcom=string.Format(@"insertinto具体点菜信息(菜单编号,菜系,菜名,份数,单价,折扣,桌台位置,状态)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','未结账')",ordnum,orderxi,ordername,ordertotalnum,orderperprice,orderdiscount,desknum);SqlCommandcmd=newSqlCommand(sqlcom,conn);cmd.ExecuteNonQuery();conn.Close();在listview控件中显示信息的代码如下:
//将选菜的信息显示在listview控件中ListViewItemit=newListViewItem();it.Text=ordnum;it.SubItems.Add(orderxi);it.SubItems.Add(ordername);it.SubItems.Add(txb_perprice.Text);it.SubItems.Add(txb_discount.Text);it.SubItems.Add(txb_totalnum.Text);listView1.Items.Add(it);在选菜的过程中,客人如果选错了或者不想要这菜了,就得把它从数据库中删了,同时在下表中不显示,其具体代码:
if(listView1.SelectedItems.Count>0){stringordernum=listView1.SelectedItems[0].SubItems[0].Text;stringordername=listView1.SelectedItems[0].SubItems[2].Text;stringstrConn=@"DataSource=.;InitialCatalog=Restaurant;IntegratedSecurity=SSPI;";SqlConnectionconn=newSqlConnection(strConn);conn.Open();stringsqlcommond=string.Format(@"deletefrom具体点菜信息where(菜单编号='"+ordernum+"')and(菜名='"+ordername+"')");//建立SqlCommand对象,负责SQL语句的执行和存储过程的调用;SqlCommandcmd=newSqlCommand(sqlcommond,conn);//对SQL或存储过程执行后返回的“结果”进行操作SqlDataAdapterda=newSqlDataAdapter();da.SelectCommand=cmd;cmd.ExecuteReader();MessageBox.Show("成功从数据库中删除");conn.Close();//删除选择项intlisnum=listView1.Items.IndexOf(listView1.FocusedItem);listView1.Items.Remove(listView1.Items[lisnum]);}else{MessageBox.Show("请选择你要删除的菜!");}最后把所有选好的确定的菜保存好,代码如下:
stringstrConn=@"DataSource=.;InitialCatalog=Restaurant;IntegratedSecurity=SSPI;";SqlConnectionconn=newSqlConnection(strConn);conn.Open();stringsqlcom=string.Format(@"insertinto点菜信息(菜单编号,桌台位置,就餐人数,服务人员)values('{0}','{1}','{2}','{3}')",txb_ordernum.Text,desknum,peocount,servername);SqlCommandcmd=newSqlCommand(sqlcom,conn);cmd.ExecuteNonQuery();MessageBox.Show("成功保存点菜信息!!");conn.Close();this.Close();opform.Close();