2013-07-15 34 views
1

上周我有一个奇怪的行为,如果条件,我会感谢任何人谁知道发生了什么。虽然我找到了一个workarroud,但我不喜欢处于阴影之中。陈述的奇怪行为

让我解释一下。

场景0(这是工作的一切爆炸前)

语言特点:Visual Basic中
净FWK:3.5
客户:XP(x86)的机器(的WinForms)
数据库:访问Win Server 2008的共享文件夹(不知道是x86还是x6 4)
DB提供:喷气OleBD
办公室:2007年86

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

有一天,Win7的出现:

方案1(这里是当一切都停止工作)

语言特点:Visual Basic中
净FWK:3.5
客户端:Win 7(x64)机器(Winforms)
数据库:上一个双赢Server 2008中的共享文件夹的访问(不知道是不是x86或x64)
DB提供:ACE OleBD 86
办公室:2010 86

在这个新场景,应用程序开始工作错误。

奥迪西开始了。

首先,我在我的开发机器上测试了应用程序。该场景与场景0类似,所以永不妥协。

然后,我开始了Win7的测试机,并试图找到,如果我能得到其中的问题是:

方案2

语言特点:Visual Basic中
净FWK :3。5
客户:Win 7的(x64)的机器(的WinForms)
数据库:ACE OleBD 86
办公室:时间:2010年86

我的本地文件夹
DB提供访问测试应用程序,一切正常。

在哭了2到3分钟后,我决定用我的Win7测试机通过互联网连接到我的客户的服务器。

方案3

语言特点:Visual Basic中
净FWK:3.5
客户:Win 7的(x64)的机器(的WinForms)
数据库:访问在Win Server 2008的共享文件夹上(不知道是x86还是x64)
DB提供:ACE OleBD 86
办公室:2010 86

惊奇相同的应用程序运行我对我的本地数据库,无法对远程数据库(只是改变了在配置文件中的连接字符串)。

我已经开始向应用程序添加调试语句并且一次又一次地进行测试,以便我能够找出为什么它不像预期的那样工作。

最后,我发现声明

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

回报方案1和3总是(ALWAYS!)。而在场景0 和2

我该死的雷神和测试这种变化的声明

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

如你想象,这工作正常。

但问题是“为什么?”。

为什么???? !!!

有什么想法?

回答

0

TotalDays

获取整个 和分数天表示,目前时间跨度结构的价值。

因此,如果您只需要整天,那么无论如何最好施放到整数,并避免任何可能的时间部分的担忧。