餐饮管理之开台
開臺主要有兩個功能,對已開臺的管理和新增開臺,
一 開臺表的設計
? 此表名為'開臺表',屬性有編號,名稱,服務員,人數,日期.編號是每臺桌子的編號,唯一不為空,設置為主鍵,需從桌臺管理表中查詢,名稱,相當于每臺桌子的位置,服務員,在開臺時可指派服務員,須從服務員對應的表中查詢,人數為此桌有多少人,日期可自己制定,默認為當前時間.
? 表格顯示效果如下:
在主界面的開臺菜單下可選擇進入開臺表界面或開臺
效果如下:
?
二 新增開臺
?界面設計
開臺需要添加桌號,服務員和人數信息,桌號和服務員都有下拉框,在開臺頁面初始化的過程中會將空閑桌號加入到桌號下拉框中,服務員的下拉框一樣,便于用戶操作.
?初始化的過程代碼
1 private void OpenForm_Load(object sender, EventArgs e) 2 { 3 string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; "; 4 SqlConnection conn = new SqlConnection(strConn); 5 conn.Open(); 6 String sqlcommond = String.Format(@"select * from 桌臺信息 where 狀態 ='空閑'"); 7 SqlCommand cmd = new SqlCommand(sqlcommond, conn); 8 //對SQL或存儲過程執行后返回的“結果”進行操作 9 SqlDataAdapter da = new SqlDataAdapter(); 10 da.SelectCommand = cmd; 11 12 SqlDataReader dr = cmd.ExecuteReader(); 13 while (dr.Read()) 14 { 15 comboBox1.Items.Add(dr["編號"].ToString()); 16 } 17 dr.Close(); 18 19 20 String sqlcommondwork = String.Format(@"select * from 員工信息"); 21 SqlCommand cmdwork = new SqlCommand(sqlcommondwork, conn); 22 //對SQL或存儲過程執行后返回的“結果”進行操作 23 SqlDataAdapter dawork = new SqlDataAdapter(); 24 da.SelectCommand = cmdwork; 25 26 SqlDataReader drwork = cmdwork.ExecuteReader(); 27 while (drwork.Read()) 28 { 29 comboBox2.Items.Add(drwork["員工姓名"].ToString()); 30 } 31 drwork.Close(); 32 33 34 conn.Close(); 35 }?加入數據庫
?確認添加后數據會加入開臺表中,代碼如下
1 string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; "; 2 SqlConnection conn = new SqlConnection(strConn); 3 conn.Open(); 4 5 String strcout = comboBox1.Text; 6 String strpeoname = comboBox2 .Text; 7 String strpeocout = textBox2.Text; 8 String strdate = "";連接數據庫,并將插入的信息保存在字符串中.
?
1 if (strcout == "") 2 { 3 MessageBox.Show("請輸入要開臺的編號!"); 4 } 5 else if (strpeoname == "") 6 { 7 MessageBox.Show("請輸入服務員姓名!"); 8 } 9 else 10 { 11 String sqlcommond = string.Format(@"select * from 桌臺信息 where 編號 ='" + strcout + "'"); 12 SqlCommand cmd = new SqlCommand(sqlcommond, conn); 13 14 //對SQL或存儲過程執行后返回的“結果”進行操作 15 SqlDataAdapter da = new SqlDataAdapter(); 16 da.SelectCommand = cmd; 17 18 SqlDataReader dr = cmd.ExecuteReader(); 19 20 if (!dr.Read()) 21 { 22 MessageBox.Show("沒有該桌號!"); 23 } 24 else if (dr["狀態"].ToString().Equals("占用")) 25 { 26 MessageBox.Show("該桌號非空閑"); 27 } 28 else 29 { 30 String strname = dr["名稱"].ToString(); 31 strdate = DateTime.Now.ToString(); 32 dr.Close(); 33 String sqlcommond2 = string.Format(@"insert into 開臺表(編號,名稱,服務員,人數,日期) values('" + strcout + "','" + strname + "','" + strpeoname + "','" + strpeocout + "','" + strdate + "')"); 34 SqlCommand cmd2 = new SqlCommand(sqlcommond2, conn); 35 cmd2.ExecuteNonQuery(); 36 String sqlcommond3 = string.Format(@"update 桌臺信息 set 狀態='占用' where 編號='" + strcout + "'"); 37 SqlCommand cmd3 = new SqlCommand(sqlcommond3, conn); 38 cmd3.ExecuteNonQuery(); 39 MessageBox.Show(strcout + "號開臺成功"); 40 } 41 conn.Close();需要對插入的信息進行判斷是否合格,都合格后插入開臺表,并更新'桌臺信息'表中該桌臺的狀態為占用.插入成功后需要跳出插入成功的提示.最后要關閉數據庫.
1 Order ord = new Order(); 2 ord.desknum = comboBox1.Text.Trim(); 3 ord.servername = comboBox2.Text.Trim(); 4 ord.peocount = Convert.ToInt32(textBox2.Text.Trim()); 5 ord.time = strdate; 6 7 8 ord.Show();成功開臺后,跳到選菜的界面.
三?開臺表界面
開臺界面的主要功能有顯示開臺信息,查詢,刪除等,開臺表中的編號欄也有下拉框,其中的信息為所有已開臺的編號.
開臺表初始化代碼
?
1 private void Opentable_Load(object sender, EventArgs e) 2 { 3 string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; "; 4 SqlConnection conn = new SqlConnection(strConn); 5 conn.Open(); 6 String sqlcommond = "select * from 開臺表"; 7 SqlCommand cmd = new SqlCommand(sqlcommond, conn); 8 9 //對SQL或存儲過程執行后返回的“結果”進行操作 10 SqlDataAdapter da = new SqlDataAdapter(); 11 da.SelectCommand = cmd; 12 13 SqlDataReader dr = cmd.ExecuteReader(); 14 listView1.Items.Clear();//再次 15 comboBox1.Items.Clear(); 16 while (dr.Read()) 17 { 18 //MessageBox.Show("1111"); 19 //構建一個ListView的數據,存入數據庫數據,以便添加到listView1的行數據中 20 ListViewItem it = new ListViewItem(); 21 it.Text = dr["編號"].ToString(); 22 23 it.SubItems.Add(dr["名稱"].ToString()); 24 25 it.SubItems.Add(dr["服務員"].ToString()); 26 27 it.SubItems.Add(dr["人數"].ToString()); 28 29 it.SubItems.Add(dr["日期"].ToString()); 30 31 32 //將lt數據添加到listView1控件中 33 listView1.Items.Add(it); 34 35 comboBox1.Items.Add(dr["編號"].ToString()); 36 } 37 conn.Close(); 38 }? 搜索開臺表將所有開臺的編號加入到下拉框中,最后關閉數據庫.
查詢操作的顯示及代碼
開臺界面的查詢操作是在所有已開臺的桌子中進行查詢,查到相應桌子后需要對開臺表中對應的一欄進行標藍便于用戶看見,效果如下圖
?查詢操作的相應代碼如下
1 private void button3_Click(object sender, EventArgs e) 2 { 3 4 Boolean flag = false; 5 for(int i=0;i<listView1.Items.Count;i++) 6 { 7 if (listView1.Items[i].SubItems[0].Text.IndexOf(comboBox1.Text.Trim()) >= 0) 8 { 9 flag = true; 10 listView1.Items[i].Selected = true; 11 listView1.Items[i].EnsureVisible(); 12 listView1.Items[oldread].BackColor = Color.White; 13 listView1.Items[i].BackColor = Color.Blue; 14 oldread = i; 15 break; 16 } 17 } 18 if(!flag) 19 { 20 MessageBox.Show("未找到該桌號"); 21 } 22 23 24 }此操作無需查詢數據庫,在該開臺界面顯示的開臺表中查詢即可,若未找到會報出相應的提示.
取消開臺及刷新
取消開臺不僅僅是在該開臺表中刪除相應開臺信息,還涉及其他表的一些信息的改變,如桌臺信息表中該編號相應的狀態信息要進行更新操作.
取消開臺的代碼如下:
1 private void button4_Click_1(object sender, EventArgs e) 2 { 3 4 if (listView1.SelectedItems.Count > 0) 5 { 6 string desknum = listView1.SelectedItems[0].SubItems[0].Text; 7 string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; "; 8 SqlConnection conn = new SqlConnection(strConn); 9 conn.Open(); 10 //刪除桌臺表中的相關信息 11 string sqlcommondkaitai = string.Format(@"delete from 開臺表 where 編號 = '" + desknum + "'"); 12 SqlCommand cmd = new SqlCommand(sqlcommondkaitai, conn); 13 SqlDataReader sr = cmd.ExecuteReader(); 14 sr.Close(); 15 16 //刪除點菜信息中的相關信息 17 string sqlcommondorder = string.Format(@"delete from 點菜信息 where 桌臺位置 = '" + desknum + "'"); 18 SqlCommand cmdorder = new SqlCommand(sqlcommondorder, conn); 19 SqlDataReader srorder = cmdorder.ExecuteReader(); 20 srorder.Close(); 21 22 //刪除具體點菜信息中的相關信息 23 string sqlcommondorder1 = string.Format(@"delete from 具體點菜信息 where 桌臺位置 = '" + desknum + "'"); 24 SqlCommand cmdorder1 = new SqlCommand(sqlcommondorder1, conn); 25 SqlDataReader srorder1 = cmdorder.ExecuteReader(); 26 srorder1.Close(); 27 28 //修改桌臺信息表中相應的信息由占用到空閑 29 int desk = Convert.ToInt32(desknum); 30 String sqlcommond3 = string.Format(@"update 桌臺信息 set 狀態='空閑' where 編號= '"+desk+"' "); 31 SqlCommand cmd3 = new SqlCommand(sqlcommond3, conn); 32 SqlDataReader sr3 = cmd3.ExecuteReader(); 33 sr3.Close(); 34 35 36 37 38 conn.Close(); 39 40 41 //刪除選擇項 42 int lisnum = listView1.Items.IndexOf(listView1.FocusedItem); 43 listView1.Items.Remove(listView1.Items[lisnum]); 44 45 } 46 else 47 { 48 MessageBox.Show("請選擇你要刪除的桌臺!"); 49 50 } 51 52 }刷新操作的代碼如下
1 private void button1_Click(object sender, EventArgs e) 2 { 3 string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; "; 4 SqlConnection conn = new SqlConnection(strConn); 5 conn.Open(); 6 String sqlcommond = "select * from 開臺表"; 7 SqlCommand cmd = new SqlCommand(sqlcommond, conn); 8 9 //對SQL或存儲過程執行后返回的“結果”進行操作 10 SqlDataAdapter da = new SqlDataAdapter(); 11 da.SelectCommand = cmd; 12 13 SqlDataReader dr = cmd.ExecuteReader(); 14 listView1.Items.Clear();//再次 15 comboBox1.Items.Clear(); 16 while (dr.Read()) 17 { 18 //MessageBox.Show("1111"); 19 //構建一個ListView的數據,存入數據庫數據,以便添加到listView1的行數據中 20 ListViewItem it = new ListViewItem(); 21 it.Text = dr["編號"].ToString(); 22 23 it.SubItems.Add(dr["名稱"].ToString()); 24 25 it.SubItems.Add(dr["服務員"].ToString()); 26 27 it.SubItems.Add(dr["人數"].ToString()); 28 29 it.SubItems.Add(dr["日期"].ToString()); 30 31 32 //將lt數據添加到listView1控件中 33 listView1.Items.Add(it); 34 35 comboBox1.Items.Add(dr["編號"].ToString()); 36 } 37 conn.Close(); 38 39 } 40?
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/team-h2s2z/p/5494855.html
總結
- 上一篇: 虚幻引擎2D游戏开发教程系列
- 下一篇: displayTag获得行号