Foxtable(狐表)用户栏目专家坐堂 → [求助]同一段代码,部分计算机闪退,太恼火了


  共有3008人关注过本帖树形打印复制链接

主题:[求助]同一段代码,部分计算机闪退,太恼火了

帅哥哟,离线,有人找我吗?
一丁
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:310 积分:2947 威望:0 精华:0 注册:2017/9/14 8:21:00
[求助]同一段代码,部分计算机闪退,太恼火了  发帖心情 Post By:2020/11/17 20:07:00 [显示全部帖子]

在一个表的DataColChanged事件中有如下代码:
If e.DataCol.Name = "起始日期"  Or e.DataCol.Name = "截止日期"
    If ( Not e.DataRow("起始日期") = Nothing) And (Not e.DataRow("截止日期") = Nothing) Then
        Dim dt1 As Date = e.DataRow("起始日期")
        Dim dt2 As Date = e.DataRow("截止日期")
        Dim y,m,d As Integer
        DateYMD(dt1,dt2,y,m,d)
        e.DataRow("执行月数") = y *12 + m +1
    Else
        e.DataRow("执行月数") = Nothing
    End If
End If

部分计算机能正常执行,部分计算机在起始日期或截止日期发生改变时,程序就闪退,不知道是什么原因,头都大了!!
望版主及各路高手帮忙分析一下,谢谢!!!
执行月数字段为Integer型字段,操作系统有win7,win10各种版本都有。

 回到顶部
帅哥哟,离线,有人找我吗?
一丁
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:310 积分:2947 威望:0 精华:0 注册:2017/9/14 8:21:00
  发帖心情 Post By:2020/11/17 20:25:00 [显示全部帖子]

上一段代码后紧接着是这样的代码,也就是如果月数为空,就不再继续后边的代码

If e.DataRow("执行月数") = Nothing
    Return
End If

如果把红色的这一段代码注释掉,所有的计算机都不会闪退,也不报错。
If e.DataCol.Name = "起始日期"  Or e.DataCol.Name = "截止日期"
    If ( Not e.DataRow("起始日期") = Nothing) And (Not e.DataRow("截止日期") = Nothing) Then
        Dim dt1 As Date = e.DataRow("起始日期")
        Dim dt2 As Date = e.DataRow("截止日期")
        Dim y,m,d As Integer
        DateYMD(dt1,dt2,y,m,d)
        e.DataRow("执行月数") = y *12 + m +1
    Else
        e.DataRow("执行月数") = Nothing
    End If
End If


 回到顶部
帅哥哟,离线,有人找我吗?
一丁
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:310 积分:2947 威望:0 精华:0 注册:2017/9/14 8:21:00
  发帖心情 Post By:2020/11/17 20:26:00 [显示全部帖子]

所以,基本上很确定,闪退就是这一段代码

 回到顶部
帅哥哟,离线,有人找我吗?
一丁
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:310 积分:2947 威望:0 精华:0 注册:2017/9/14 8:21:00
  发帖心情 Post By:2020/11/17 20:38:00 [显示全部帖子]

字数限制,只能附件,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:code.txt


 回到顶部