- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有谁可以帮助我吗?我已经处理这个问题几个月了,但似乎找不到解决方案。
正如标题所说,当我在 POS 中点击某顿饭时,我需要检查每顿饭是否有足够的食材。
我的数据库中有这些表结构..
如您所见,每份炸鸡都包含来 self 库存的以下成分。假设某种成分没有足够的库存,则会出现一个消息框,提示库存中没有剩余库存,否则它将添加到数据 GridView 中。当我点击 POS 中的炸鸡时就会发生这种情况。
这是我的代码:
cmd = new MySqlCommand("SELECT * FROM tblmenu", dbConn);
MySqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Button btn = new Button();
btn.Name = rdr["menuID"].ToString();
btn.BackgroundImage = Image.FromStream(ms);
btn.BackgroundImageLayout = ImageLayout.Stretch;
btn.Width = 120;
btn.Height = 100;
btn.Click += delegate
{
MySqlConnection cnn2 = new MySqlConnection(sqlConn.connString);
cnn2.Open();
cmd = new MySqlCommand("SELECT menuID, menuName, menuPrice, menuCategory FROM tblmenu WHERE menuID = @id", cnn2);
cmd.Parameters.AddWithValue("@id", btn.Name);
MySqlDataReader rdr2 = cmd.ExecuteReader();
if (rdr2.Read() == true)
{
dataGridView1.Rows.Add(rdr2.GetInt32("menuID"), rdr2.GetString("menuName").ToUpper(), 1, rdr2.GetDouble("menuPrice"), rdr2.GetDouble("menuPrice"));
}
};
然后是datagridview中调整数量的函数
void quantity_change(object sender, EventArgs e)
{
var row = dataGridView1.CurrentRow;
if (row == null || row.Index < 0)
return;
var unit = (sender == btnAdd) ? 1 : -1;
var quantity = Convert.ToInt32(row.Cells["Quantity"].Value) + unit;
row.Cells["Quantity"].Value = quantity;
var rate = Convert.ToDouble(row.Cells["Price"].Value);
row.Cells["TotalAmount"].Value = quantity * rate;
}
我真的希望有人可以在这里帮助我,因为这是我完成项目所需要做的唯一事情。
最佳答案
在 btn.Click += delegate
中,您不应在 tblmenu
上查询,而应从 Ingredients
表中进行选择并使用 where在MenuID
上。同时将库存加入其中,以选择当前库存值。
类似于:(未经测试,但可能会给出提示)
SELECT menuID, menuName, menuPrice, menuCategory, tblinventory.Quantity AS StockQuantity, tblingredients.Quantity AS IngredientQuantity
FROM tblingredients
INNER JOIN tblinventory on tblingredients.InvID == tblinventory.ID
WHERE menuID = @id
并对结果进行比较 StockQuantity
和 IngredientQuantity
代码存在一些问题:
dataGridView1.Rows.Add(rdr2.GetInt32("menuID"), rdr2.GetString("menuName").ToUpper(), 1, rdr2.GetDouble("menuPrice"), rdr2.GetDouble("菜单价格"));
为什么要添加两次menuPrice?
<小时/>配料菜单中的MenuName
是多余的。你应该删除它。因为食材是库存和菜单的交集。您不想存储每种成分的菜单名称
您不应该在此处使用 btn.Name
=> cmd.Parameters.AddWithValue("@id", btn.Name);
使用 改为 btn.Tag
。
单位
如何相关。 成分
单位和库存
单位之间可能存在差异。
关于c# - 检查库存是否有足够的库存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39407381/
对于我的问题,我找不到更好的措辞。 在我的应用程序中的某个时刻,我设置了一些非常密集的动画。问题是,在高端设备上,动画运行流畅且赏心悦目。另一方面,我测试过的一台低端设备在制作动画时表现非常糟糕。 试
我正在修补 OTP 模块 ( yubico_pam ),并尝试访问管理员选择的控制标志(例如必需,足够, ETC)。 有什么想法吗?这是否可行(无需解析文件)? 最佳答案 无法在 API 中查询此信息
我有一些为 Linux 编写的 C 代码,依赖于套接字和 arpa/inet.h 以及 libusb.h,我想在 MinGW 下为 Windows 编译它。 (请注意,当前项目只有一个非常简单的 Ma
我是一名优秀的程序员,十分优秀!