C# 向数据库传递十进制值时出现问题(Access)

C# 向数据库传递十进制值时出现问题(Access),c#,ms-access,decimal,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); debug d

我想将十进制值传递给数据库表。当我将值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);

debug decimal解析时,该值是正确的(1.5)

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

在我看来,似乎
十进制。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”是十进制分隔符

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

希望这有帮助:)

如果通过“1.5”,那么它是相同的(15)如果在断点上解析的值是正确的,那么它必须在调用中保存到数据库中。您的列是否设置为十进制类型?解析后,row.Km是否包含正确的值?是,列设置为十进制类型。Km也包含正确的值。