从C#保存双重值到Access数据库

时间:2012-04-10 17:21:10

标签: c# database ms-access double

所以我创建了一个简单的数据库读取器,它只能从访问数据库中获取值到DataGridView中。如果你知道我的意思,我将它们与内置的帮助连接起来以获得DataSource。一切都很好,但在"价值"当我写下来时,让我们说1172,44它会将其保存为117244,因此,当我在应用程序上打开它时,值为117244,因为它是保存的值。

在访问和c#数据集中,fieldsize属性都设置为double。我已尝试过十进制,但它只是给了我一个错误,我无法找出导致它的原因。在我看来,它不是在阅读","作为一个逗号,但作为一个"。"这很可能使它成为一个千分隔符,只是删除它导致数字没有逗号。谁知道我怎么能解决它?我可以在这里得到你需要的任何代码。

谢谢,Bruno Charters。 (=

2 个答案:

答案 0 :(得分:1)

您可以尝试将存储在DataSet中的double值设置为与文化无关(不变)并控制组和小数分隔符的表示形式。一种方法是使用CultureInfo格式提供程序解析输入。以下代码说明了"1172,44"1172.44d

的转换
var culture = (CultureInfo) CultureInfo.InvariantCulture.Clone();
culture.NumberFormat.NumberDecimalSeparator = ",";
culture.NumberFormat.NumberGroupSeparator = "."; 
var a = double.Parse("1172,44", culture);

Console.WriteLine(a); //outputs 1172.44

答案 1 :(得分:0)

您猜测逗号被解释为组分隔符可能是正确的。您可能需要仔细检查流程的CurrentCulture和CurrentUICulture,以及计算机的区域设置,以及Access数据库的格式属性(如果已设置)。

我怀疑你应该阅读How to: Customize Data Formatting in the Windows Forms DataGridView Control。该系统有点复杂,但如果你不能使用适当的文化设置,它应该可以灵活地在你的用户界面上强制使用特定的格式。