sql >> Databáze >  >> RDS >> Mysql

Zobrazuje se chyba Chyba při převodu datového typu nvarchar na skutečný.

Protože k @Price nepřiřazujete žádnou hodnotu v kódu C# zatímco vaše Warehouse Id a Discount rate jsou předmětem přidělení koncovým uživatelem, doporučuji, aby váš kód byl takto:

   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*([email protected]) " +
                                        "where [email protected]", 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
        {

        }
    }​​​​​​​

Také bych vám doporučil, abyste si znovu promysleli svůj dotaz, protože aktualizuje cenu všech produktů se stejnou hodnotou, můžete zvážit předání parametru @ProductId a váš dotaz bude

update Inventory set Price=Price*([email protected]) 
where [email protected] and [email protected]

jistě to bylo například.



  1. Deklarujte chybu syntaxe v MYSQL Workbench

  2. Dotaz na dvě tabulky z jiného schématu

  3. Jak vyjádřit svou hodnotu jako DBA finančním manažerům

  4. jak vytvořit počítadlo článků v php?