将十进制值传递给数据库的问题(Access)

时间:2011-09-27 14:30:19

标签: c# ms-access decimal

我想将十进制值传递给数据库表。当我将值1,5发送到数据库时,将值保存为15。

Code:

txtKm.Text="1,5";
zelezniceDataSet.VozniRediRow row;
row.Km = decimal.Parse(txtKm.Text);

zelezniceDataSet.VozniRedi.AddVozniRediRow(row);
vozniRediTableAdapter.Update(zelezniceDataSet.VozniRedi);

当调试十进制解析时,该值是正确的(1.5)

2 个答案:

答案 0 :(得分:0)

您可能希望查看接受特定于区域性格式选项的overloaded form decimal.Parse。我的猜测是decimal.Parse将你的逗号视为千位分隔符并将其删除。

答案 1 :(得分:0)

在我看来decimal.Parse忽略了逗号...如果你传递“1.5”是保存了正确的值吗?如果是这样,那么您需要在解析Decimal.Parse(String, NumberStyles)时使用文化使用的重载,并为您使用的语言传递正确的数字样式。

编辑...更多信息..

decimal.Parse(test, CultureInfo.GetCultureInfo("EN-us").NumberFormat );

将为test =“1,5”输出15,因为在英语中,“,”char是千位分隔符

decimal.Parse(test, CultureInfo.GetCultureInfo("NL-nl").NumberFormat );

将为test =“1,5”输出1.5,因为在荷兰语中,“,”char是小数点分隔符

希望这会有所帮助:)