我的程序没有正确保存数字

时间:2018-01-03 11:52:06

标签: c# mysql database

当我从文本框(txtMaterialUnitPrice,txtMaterialUnitPrice)输入十进制数字时,如4,5和6,5,总价格应该是29,25但它来自29.这是我的代码。

private void btnSale_Click(object sender, EventArgs e)
    {
        salesTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
        materialPrice = Decimal.Parse(txtMaterialUnitPrice.Text);
        purchasedWeight = Decimal.Parse(txtMaterialUnitPrice.Text);
        totalPrice = materialPrice * purchasedWeight;

        curSales = Sales.Insert(customerID, customerNameSurname, customerPlate, materialID, materialType, materialPrice, purchasedWeight, totalPrice, salesTime, txtExplanation.Text);

        LoadAll();
    }

这是插入部分。

 public static Sales Insert(int cID, String cNameSurname, String cPlate, int mID, String mName, Decimal mPrice, Decimal pWeight, Decimal totalPrice, String dt, String explanation)
    {
        String query = string.Format("INSERT INTO sales(CustomerID,CustomerNameSurname,CustomerPlate,MaterialID,MaterialType,MaterialPrice,PurchasedWeight,TotalPrice,SalesDate,Explanation) VALUES ('{0}', '{1}' , '{2}', '{3}','{4}','{5}','{6}','{7}','{8}','{9}')", cID, cNameSurname, cPlate, mID, mName, mPrice, pWeight, cleanAmount, dt, explanation);

        MySqlCommand cmd = new MySqlCommand(query, DB.dbConn);

        DB.dbConn.Open();

        cmd.ExecuteNonQuery();

        int id = (int)cmd.LastInsertedId;

        Sales sale = new Sales(id, cID, cNameSurname, cPlate, mID, mName, mPrice, pWeight, totalPrice, dt, explanation);

        DB.dbConn.Close();

        return sale;
    }

2 个答案:

答案 0 :(得分:0)

可能有两个原因 1.您的表格栏' TotalPrice'是INT类型而不是DECIMAL 要么 2.您的销售'对象类属性' TotalPrice'是整数或不存储小数点的东西。

答案 1 :(得分:0)

您的解决方案中的问题是","标志。 C#中的逗号是你使用"的十进制值。"标志,这就是它结合它的原因

//例 //这将起作用

十进制测试= 7.5;

//这不起作用

十进制测试= 7,5;

更改小数点指针符号