Foxtable(狐表)用户栏目专家坐堂 → [求助]把代码所在表的记录写到另一张同列名的表上是遇到空日期列会报错


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

主题:[求助]把代码所在表的记录写到另一张同列名的表上是遇到空日期列会报错

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
[求助]把代码所在表的记录写到另一张同列名的表上是遇到空日期列会报错  发帖心情 Post By:2021/5/7 11:28:00 [只看该作者]

DataColChanged

下面代码的作用是把代码所在表的记录写到另一张同列名的表上,当代码所在表的 有个 日期 列为空时,写到另一张表的 日期 列时就会报错,只要把这个日期列填上日期就正常了,请问如何解决,谢谢老师!

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.4.19.8
错误所在事件:
详细错误信息:
对于造型说明无效的字符值


以下是代码:
If e.DataCol.Name = "审核" Then
    If e.NewValue = True Then        
        If e.DataRow("应付日期1") <> Nothing Then
            Dim dr As DataRow = _dt应付日期明细.AddNew
            dr("ID") = e.DataRow("_Identify")
            dr("应付描述") = e.DataRow("应付描述1")
            dr("应付日期") = e.DataRow("应付日期1")
            dr("应付金额") = e.DataRow("应付金额1")
            For Each dc As DataCol In _dt应付日期明细.DataCols
                If e.DataTable.DataCols.Contains(dc.Name) Then
                    dr(dc.Name) = e.DataRow(dc.Name)
                End If
            Next
            dr.Save
        End If
........

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


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/7 11:36:00 [只看该作者]

其中一个表的日期列是字符型列吧。判断一下是否有值再赋值

if e.DataRow.isnull("应付日期1") = false
dr("应付日期") = e.DataRow("应付日期1")
end if

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2021/5/7 11:39:00 [只看该作者]

都是日期型,这是否是软件存在BUG,不过,老师的方法可以,先判断,如果不是空,再赋值

 回到顶部