我有问题。在我的课上,我将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);
答案 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);
}