声明的奇怪行为

时间:2013-07-15 19:50:48

标签: ms-access windows-7 windows-xp

上周我有一个奇怪的行为,如果有条件,我会感谢任何一个知道发生了什么的人。虽然我找到了一个工作区,但我不喜欢在阴影中。

让我解释一下。

场景0 (这在一切爆炸之前都有效)

Langauge :Visual Basic
Net Fwk :3.5
客户端:XP(x86)机器(Winforms)
数据库:访问Win Server 2008的共享文件夹(不知道是x86还是x64)
数据库提供商:Jet OleBD
办公室:2007 x86

为什么要访问?
低成本,MS Access可供用户使用,它适合我所需要的一切。

有一天Win7出现了:

场景1 (这是一切都停止工作的时候)

Langauge :Visual Basic
Net Fwk :3.5
客户端:Win 7(x64)机器(Winforms)
数据库:访问Win Server 2008的共享文件夹(不知道是x86还是x64)
数据库提供商:ACE OleBD x86
办公室:2010 x86

在这个新场景中,应用程序开始出错了。

奥德赛开始了。

首先,我在开发机器上测试了应用程序。该场景与场景0类似,因此可以正常运行。

然后我开始使用Win7测试机并试图找出问题所在:

场景2

Langauge :Visual Basic
Net Fwk :3.5
客户端:Win 7(x64)机器(Winforms)
数据库:访问本地文件夹
数据库提供商:ACE OleBD x86
办公室:2010 x86

我测试应用程序,一切正常。

在像婴儿一样哭2或3分钟后,我决定使用我的Win7测试机通过互联网连接到我客户的服务器。

场景3

Langauge :Visual Basic
Net Fwk :3.5
客户端:Win 7(x64)机器(Winforms)
数据库:访问Win Server 2008的共享文件夹(不知道是x86还是x64)
数据库提供商:ACE OleBD x86
办公室:2010 x86

惊讶于我针对本地数据库运行的相同应用程序,对远程数据库失败(刚刚更改了配置文件中的连接字符串)。

我已经开始向应用程序添加调试语句并一次又一次地进行测试,因此我可以找到为什么它不能像指定的那样工作。

最后,我发现了声明

If FinalDate.Subtract(StartingDate).TotalDays + 1 = 7 Then

在场景1和3中始终返回 False (总是!)。方案0和2中的 True False

我诅咒Thor并将此更改测试为声明

Dim totalDays As Integer = CInt(FinalDate.Subtract(StartingDate).TotalDays)
If totalDays + 1 = 7 Then

如你所想,这很好用。

但问题是“为什么?”。

WHY ???? !!!!

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

TotalDays

  

获取以整数表示的当前TimeSpan结构的值   和分数天。

因此,如果您只需要整天,那么最好转换为Integer,并避免对时间部分产生任何可能的担忧。