int32和十进制转换

时间:2013-01-06 16:38:59

标签: c# class

我有问题。在我的课上,我将product_ID定义为int32,将product__price定义为小数。当我必须使用文本框在数据库中保存数据时,我无法做到,它无法转换它或其他东西。如果可以,请你帮助我。谢谢。

public Int32 Product_ID { get; set; }
public String Product_name { get; set; }
public String Product_category { get; set; }
public Decimal Product_price { get; set; }
public string image_location { get; set; }

Product product = new Product();

product.Product_ID = int.Parse(textBox1.Text);
product.Product_name = textBox2.Text;
product.Product_category = textBox3.Text;

product.Product_price = int.Parse(textBox4.Text);
product.image_location = textBox5.Text;


Product.Save(product);

2 个答案:

答案 0 :(得分:1)

纠正这一行:

product.Product_price = int.Parse(textBox4.Text);

product.Product_price = decimal.Parse(textBox4.Text);

最理想的是,您应该首先检查文本框的内容(如果您还没有),这样您就可以使用正确的逗号,仅限数字,尝试捕获等等。

答案 1 :(得分:1)

您必须将其转换为小数而不是int sinse product.Product_price是十进制类型。类型必须始终匹配。

product.Product_price = Convert.ToDecimal(textBox4.Text);

product.Product_price = decimal.Parse(textBox4.Text);

<强>更新 这只是一个疯狂的猜测,但试试这个:

if(IsPostback)
{

    Product product = new Product();

    product.Product_ID = int.Parse(textBox1.Text);
    product.Product_name = textBox2.Text;
    product.Product_category = textBox3.Text;

    product.Product_price = Convert.ToDecimal(textBox4.Text);
    product.image_location = textBox5.Text;


    Product.Save(product);

}