0

所以我正在创建一个简单的数据库阅读器,它只应该从访问数据库中获取值到 DataGridView 中。如果您知道我的意思,我将它们与内置帮助连接起来以获取数据源。一切都很好,但是当我写下“值”列时,假设 1172,44 它将在访问时将其保存为 117244,因此,当我在应用程序上打开它时,值是 117244,因为它是保存的值。

在 access 和 c# 数据集中,fieldsize 属性都设置为 double。我试过十进制,但它只是给我一个错误,我无法找出导致它的原因。在我看来,它不是将“,”读作逗号,而是读作“。” 这很可能使它成为千位分隔符,然后将其删除,从而导致没有逗号的数字。任何人都知道我该如何解决它?我可以在这里获得您需要的任何代码,您只需询问即可。

谢谢,布鲁诺宪章。(=

4

2 回答 2

1

您可以尝试将存储在 DataSet 中的双精度值设置为与区域性无关(不变)并控制组和小数分隔符的表示。一种方法是使用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
于 2012-04-10T17:27:45.247 回答
0

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

我怀疑您应该阅读How to: Customize Data Formatting in the Windows Forms DataGridView Control。该系统有些复杂,但如果您无法使用适当的文化设置,它应该可以让您灵活地将特定格式强加到您的 UI 上。

于 2012-04-10T18:39:57.670 回答