我正在尝试将十进制数字存储到列数据类型为numeric(10,2)
的SQL Server数据库中。
使用以下参数化过程将数据从文本框传递到数据库
cmd.Parameters.Add(new SqlParameter("@PP", SqlDbType.Decimal)).Value = decimal.Parse(TB_PP.Text);
我的问题是我可以直接在数据库表中输入十进制数字,并且当从数据库读取它到文本框时,我会得到一个十进制数字
但是当通过文本框存储它时,它会保存一个整数,所以我应该用什么代替SqlDbType.Decimal
?
答案 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
时,请尝试一下。