Mysql
 sql >> база данни >  >> RDS >> Mysql

Получавам грешка Грешка при преобразуване на тип данни nvarchar в реален.

Тъй като не присвоявате никаква стойност на @Price в C# код докато вашият Warehouse Id и Discount rate подлежат на присвояване от крайния потребител, препоръчвам вашият код да бъде такъв:

   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
        {

        }
    }​​​​​​​

Също така бих ви препоръчал да помислите отново за заявката си, тъй като тя ще актуализира цената на всички продукти с една и съща стойност, може да помислите да подадете параметър @ProductId и вашето запитване е

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

сигурно това беше например.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL -- Актуализирайте, ако съществува, вмъкнете с два ключа

  2. Как да промените порта по подразбиране на mysql от 3306 на 3360

  3. SQL вмъкване в избор от множество полета

  4. MySQL комбинира две колони в една колона

  5. MYSQL_ROOT_PASSWORD е зададен, но получаването на достъп е отказан за потребител 'root'@'localhost' (използвайки парола:ДА) в докер контейнера