Foxtable(狐表)用户栏目专家坐堂 → 无法在 System.DateTime 和 System.String 上执行“=”操作。”


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

主题:无法在 System.DateTime 和 System.String 上执行“=”操作。”

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


加好友 发短信
等级:婴狐 帖子:9 积分:152 威望:0 精华:0 注册:2021/1/3 20:26:00
无法在 System.DateTime 和 System.String 上执行“=”操作。”  发帖心情 Post By:2021/7/20 23:54:00 [只看该作者]

如题。
各位老师,我制作的项目使用了“非关联表数据同步”,在表格A里输入数据可以正常同步,但是使用窗口录入日期的时候机会报错
“.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2021.5.29.1
错误所在事件:表,基础数据表,DataColChanged
详细错误信息:
调用的目标发生了异常。
无法在 System.DateTime 和 System.String 上执行“=”操作。”
不知是哪里的问题!

A表“DataColChanged”代码:
Select Case e.DataCol.name
    Case "日期"
        Dim dr As DataRow = DataTables("mryxsj").Find(" 日期 = '" & e.OldValue & "'")
        If dr Is Nothing Then
            dr = DataTables("mryxsj").AddNew()
            dr("日期") = e.DataRow("日期")
            dr("大兴机场_实际出港架次") = e.DataRow("大兴机场_实际出港架次")
            dr("大兴机场_实际进港架次") = e.DataRow("大兴机场_实际进港架次")
            dr("大兴机场_小时高峰架次") = e.DataRow("大兴机场_小时高峰架次")
            dr("大兴机场_高峰时段") = e.DataRow("大兴机场_高峰时段")
            dr("当日执行RECAT的数量") = e.DataRow("当日执行RECAT的数量")
            dr("当日航班开始时间") = e.DataRow("当日航班开始时间")
            dr("当日航班结束时间") = e.DataRow("当日航班结束时间")
            dr("受天气影响11L无法出港") = e.DataRow("受天气影响11L无法出港")
            dr("不正常情况") = e.DataRow("不正常情况")
        Else
            dr("日期") = e.DataRow("日期")
        End If
      Case "日期","大兴机场_实际出港架次","大兴机场_实际进港架次","大兴机场_小时高峰架次","大兴机场_高峰时段","当日航班结束时间","当日航班开始时间","当日执行RECAT的数量","受天气影响11L无法出港","不正常情况"
        Dim dr As DataRow = DataTables("mryxsj").Find("日期 = '" & e.DataRow("日期") & "'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
    End Select

请大神帮助!!!!!!

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

上面是【错误所在事件:表,基础数据表,DataColChanged】的全部代码吗?

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


加好友 发短信
等级:婴狐 帖子:9 积分:152 威望:0 精华:0 注册:2021/1/3 20:26:00
  发帖心情 Post By:2021/7/21 15:00:00 [只看该作者]

是的


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

看不出什么,调试一下:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错

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


加好友 发短信
等级:婴狐 帖子:9 积分:152 威望:0 精华:0 注册:2021/1/3 20:26:00
  发帖心情 Post By:2021/7/21 15:06:00 [只看该作者]

调试语句应该怎么编,我昨天试了一下,没有显示是哪错误?

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

关闭退出项目,删除项目所在的文件夹里的bin目录,然后重启项目试试。

调试就是每一句代码后加上提示框,看哪一个提示框出不来
    Case "日期"
        Dim dr As DataRow = DataTables("mryxsj").Find(" 日期 = '" & e.OldValue & "'")
msgbox(1)
        If dr Is Nothing Then
msgbox(2)
            dr = DataTables("mryxsj").AddNew()
msgbox(3)
            dr("日期") = e.DataRow("日期")
msgbox(4)
……

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


加好友 发短信
等级:婴狐 帖子:9 积分:152 威望:0 精华:0 注册:2021/1/3 20:26:00
  发帖心情 Post By:2021/7/21 15:58:00 [只看该作者]

现在调试的结果应该是“ Dim dr As DataRow = DataTables("mryxsj").Find(" 日期 = '" & e.OldValue & "'")”这句的问题,A表的“日期”和mryxsj的“日期”都是日期类型,窗口的是“DateTimePicker”,在表里直接输入没有问题,但是在窗口里输入就有问题了。
窗口事件设置了打开窗口增加一空白行,然后输入。

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

判断一下

if e.OldValue  <> nothing then
 Dim dr As DataRow = DataTables("mryxsj").Find(" 日期 = '" & e.OldValue & "'")
……

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


加好友 发短信
等级:婴狐 帖子:9 积分:152 威望:0 精华:0 注册:2021/1/3 20:26:00
  发帖心情 Post By:2021/7/21 16:27:00 [只看该作者]

这样判断了,不报错了。但是不能同步了


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


加好友 发短信
等级:婴狐 帖子:9 积分:152 威望:0 精华:0 注册:2021/1/3 20:26:00
  发帖心情 Post By:2021/7/21 16:28:00 [只看该作者]

If e.OldValue  <> Nothing Then
        Dim dr As DataRow = DataTables("mryxsj").Find(" 日期 = '" & e.OldValue & "'")

        If dr Is Nothing Then

            dr = DataTables("mryxsj").AddNew()

            dr("日期") = e.DataRow("日期")

 回到顶部
总数 11 1 2 下一页