【发布时间】:2012-09-25 15:52:30
【问题描述】:
我有一个使用 ADODB (MDAC 2.8) 的数据访问组件,它使用 ADODB.recordset 来读取包含定义为 decimal(15,2) 的列的 sql server 表。
这个数据访问组件是用 VB6 编写的,多年来一直在我们的软件中使用。
现在我们必须编写一个不使用 VB6 的兼容组件(因此我们在 VB.NET 中进行了重写)。
为了更轻松地转移到新组件,我们坚持使用 VB.NET 中的 ADODB。
现在的问题是: 如果我从包含“50000”(无小数)数据的列中读取一个值并将其作为字符串返回,则 vb6 组件提供“50000”,而 VBNET 版本提供“50000,00”。
所以这可能只是一个外观问题,因为内部表示是可以的,但我想知道是否有一个开关来确定如何返回小数。
此外:欢迎在此范围内引用此兼容性问题的任何链接...
问候 克劳斯
【问题讨论】:
-
这不是 VB.Net 问题而不是 VB6 问题吗?我正在将 VB.Net 添加到标签中
-
如果您使用 ToString 方法,您可以在 VB.Net 中显式控制字符串格式。看看过载情况。您可以传递格式字符串来控制显示多少小数位(如果有),您可以传递 CultureInfo 对象,这些对象允许您选择小数点分隔符是点还是逗号
-
请告诉我你把十进制读成十进制而不是字符串。
-
托尼,为了计算,我们填充十进制变量,但我的问题是关于演示的。考虑到我们有大量的资源依赖于此
-
MarkJ 我知道有这种格式化选项 - 但我们有一个非常大的代码库,它按原样使用组件 - 没有机会查看每个参考......