【发布时间】:2020-04-24 08:15:54
【问题描述】:
我希望有人可以帮助我,因为我无法在网上找到解决方案。
我正在处理一个表单,其中使用 tableadapter 自动填充 datagridview,其中包含来自 access 数据库的数据。在数据库中,我有一列包含小十进制数字的双精度数。除了不显示小数的这个之外,datagridview 已正确填充。例如“0,00400364688627264”仅显示“0”或“0.000000”,具体取决于我如何格式化列。即使是科学格式也只在 dgv 中显示“0.000000E+000”。我怀疑它与访问中的分隔符“,”有关,并在调用填充之前尝试设置区域位置:
System.Globalization.CultureInfo.DefaultThreadCurrentCulture = New Globalization.CultureInfo("da-DK")
但这也不起作用。认为这将是一个相当简单的问题,但无法弄清楚为什么它不起作用。
【问题讨论】:
-
这些值是存储为字符串还是双精度值?看来那些是字符串。先解决这个问题。
-
它们在数据库中以双精度形式存储,以“,”作为分隔符。
-
双精度没有分隔符。此符号是转换为数值字符串的结果。符号本身由当前/本地格式决定。不要将价值与展示相混淆。如果这些字段实际上是
double precision类型,则使用 DGV 显示它们不会有任何问题:此控件使用当前线程区域性(Thread.CurrentThread.CurrentCulture和Thread.CurrentThread.CurrentUICulture)来确定千位和小数分隔符,当值被格式化用于展示。 -
Access数据库中列的数据类型是什么?
-
access中的数据类型为double
标签: vb.net datagridview decimal cultureinfo