sql >> Database teknologi >  >> RDS >> Mysql

Jeg får en fejl Fejl ved konvertering af datatype nvarchar til ægte.

Da du ikke tildeler nogen værdi til @Price i C#-koden mens dit Warehouse Id og Discount rate er underlagt at blive tildelt af slutbrugeren, anbefaler jeg, at din kode er sådan her:

   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
        {

        }
    }​​​​​​​

Jeg vil også anbefale dig at tænke over din forespørgsel igen, da den vil opdatere alle produkters pris med samme værdi. Du kan overveje at overføre parameteren @ProductId og din forespørgsel være

update Inventory set Price=Price*(example@sqldat.com) 
where example@sqldat.com and example@sqldat.com

sikker på det var f.eks.



  1. Brug af Python til at få adgang til SQL med et variabelt kolonnenavn

  2. php:Gem billede i Mysql blob, godt eller dårligt?

  3. Hvordan sorterer man forespørgselsresultater efter afstand i Laravel QueryBuilder / MySQL Spatial-pakke?

  4. Konverter dato til millisekunder i MySQL