从C#将十进制数存储到数据库中

时间:2018-10-12 17:33:35

标签: c# sql-server-2008-r2 .net-4.0

我正在尝试将十进制数字存储到列数据类型为numeric(10,2)的SQL Server数据库中。

使用以下参数化过程将数据从文本框传递到数据库

cmd.Parameters.Add(new SqlParameter("@PP", SqlDbType.Decimal)).Value = decimal.Parse(TB_PP.Text);

我的问题是我可以直接在数据库表中输入十进制数字,并且当从数据库读取它到文本框时,我会得到一个十进制数字

但是当通过文本框存储它时,它会保存一个整数,所以我应该用什么代替SqlDbType.Decimal

2 个答案:

答案 0 :(得分:0)

尝试使用双精度代替小数:

double.Parse(TB_PP.Text);

答案 1 :(得分:0)

尝试以这种方式定义参数:

cmd.Parameters.Add(new SqlParameter("@PP", SqlDbType.Decimal) {
    Precision = 10, 
    Scale = 2 
 });

我的经验是当SQL数据类型为decimal(10,2)而不是numeric时,请尝试一下。