0

我有一个使用 ADODB (MDAC 2.8) 的数据访问组件,它使用 ADODB.recordset 来读取包含定义为十进制 (15,2) 的列的 sql 服务器表。

这个数据访问组件是用 VB6 编写的,多年来一直在我们的软件中使用。

现在我们必须编写一个没有 VB6 的兼容组件(所以我们在 VB.NET 中进行了重写)。

为了更轻松地转移到新组件,我们坚持使用 VB.NET 中的 ADODB。

现在的问题是:如果我从包含“50000”(无小数)数据的列中读取一个值并将其作为字符串返回,vb6 组件提供“50000”,而 VBNET 版本提供“50000,00”。

所以这可能只是一个表面问题,因为内部表示是可以的,但我想知道是否有一个开关来确定如何返回小数。

另外:欢迎在此范围内引用此兼容性问题的任何链接...

问候克劳斯

4

1 回答 1

1

我在这里看到两个大错误:

为了更轻松地转移到新组件,我们坚持使用 VB.NET 中的 ADODB。

这没有充分的理由。使用 ADO.Net API 而不是旧的 ADODB,您将很快(而不是稍后)感谢自己。

如果我从包含“50000”(无小数)数据的列中读取一个值并将其作为字符串返回

啊。将数值数据保留为数值数据。在整个代码中使用 Decimal 类型,直到您实际向用户显示数据之前的最后一刻。

于 2012-09-25T16:38:48.610 回答