以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]把代码所在表的记录写到另一张同列名的表上是遇到空日期列会报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=164868)

--  作者:huangfanzi
--  发布时间: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
........

--  作者:有点蓝
--  发布时间:2021/5/7 11:36:00
--  
其中一个表的日期列是字符型列吧。判断一下是否有值再赋值

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

--  作者:huangfanzi
--  发布时间:2021/5/7 11:39:00
--  
都是日期型,这是否是软件存在BUG,不过,老师的方法可以,先判断,如果不是空,再赋值