Asp.net 如何将nvarchar转换为十进制值

Asp.net 如何将nvarchar转换为十进制值,asp.net,sql-server-2008-r2,Asp.net,Sql Server 2008 R2,我为教育信息创建了一个表。其中一个字段是AverageMark,因此我将其数据类型设置为Decimal(2,2)-(例如:18.21、20、15.50等标记)。 但我不知道这个数据类型是正确的还是应该更改 因为当我想从Asp.net插入数据库时,总是会引发一个异常,如下所示: cmd.Parameters.Add("@Average", SqlDbType.Decimal).Value = Convert.ToDecimal(Average.Text.Trim()); 例外情况是:将数据类型数

我为教育信息创建了一个表。其中一个字段是AverageMark,因此我将其数据类型设置为Decimal(2,2)-(例如:18.21、20、15.50等标记)。 但我不知道这个数据类型是正确的还是应该更改

因为当我想从Asp.net插入数据库时,总是会引发一个异常,如下所示:

cmd.Parameters.Add("@Average", SqlDbType.Decimal).Value = Convert.ToDecimal(Average.Text.Trim());
例外情况是:将数据类型数字转换为十进制时出错。


我不知道现在该怎么做才能插入只有2个十进制值的标记?

您可以尝试使用此代码-基于
CultureInfo.InvariantCulture

Convert.ToDecimal(Average.Text.Trim(), CultureInfo.InvariantCulture);
十进制(2,2)
最多可包含2位数字,其中2位数字应位于小数点的右侧。也许您打算使用
十进制(4,2)
?(因为没有一个示例数字符合第一个定义)