我目前正在研究库存系统的In&Out模块。我需要一个SQL查询,可以在其中用重复的值更新SQL表中的一行。
到目前为止,我已经尝试使用MySQL的UPDATE语句,但是问题是它使用相同的SKU(库存单位)更新了表中的每一行。
这是我正在使用的当前代码,但是此代码更新了具有相同SKU值的所有行。
conn = new MySqlConnection(connectionString);
try
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
MySqlCommand cmd = new MySqlCommand("UPDATE eja.purchases SET stockonhand = stockonhand - @minusStock WHERE sku=@sku", conn);
cmd.Parameters.AddWithValue("@minusStock", Convert.ToDecimal(dataGridView1.Rows[i].Cells[4].Value));
cmd.Parameters.AddWithValue("@sku", dataGridView1.Rows[i].Cells[1].Value.ToString());
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
catch (MySqlException e)
{
MessageBox.Show(e.ToString());
}
}
我希望输出仅更新SQL表中的一条记录。现在,它将更新SKU值相同的所有行。