Comme vous n'attribuez aucune valeur à @Price dans le code C# tandis que votre Warehouse Id et le Discount rate sont susceptibles d'être attribués par l'utilisateur final, je recommande que votre code ressemble à ceci :
private void button4_Click(object sender, EventArgs e)
{
try
{
var discountRate = 0.07; //could be Convert.ToDouble(textBox1.Text) or something else
var warehouseId = 6; //again, could be Convert.ToInt32(textBox2.Text) or something else
myConnection = new SqlConnection(frm.cs);
myCommand = new SqlCommand("update Inventory set Price=Price*(example@sqldat.com) " +
"where example@sqldat.com", myConnection);
myConnection.Open();
myCommand.Parameters.AddWithValue("@DiscountRate", discountRate);
myCommand.Parameters.AddWithValue("@WarehouseId", warehouseId);
myCommand.ExecuteNonQuery();
myConnection.Close();
MessageBox.Show("Update successfully!");
DisplayData();
if (myConnection.State == ConnectionState.Open)
{
myConnection.Dispose();
}
}
catch
{
}
}
Je vous recommande également de repenser à votre requête car elle mettra à jour tous les prix des produits avec la même valeur, vous pouvez envisager de transmettre le paramètre @ProductId et votre requête soit
update Inventory set Price=Price*(example@sqldat.com)
where example@sqldat.com and example@sqldat.com
bien sûr que c'était par exemple.