以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 无法在 System.DateTime 和 System.String 上执行“=”操作。” (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=170297) |
-- 作者:qibing19780 -- 发布时间:2021/7/20 23:54:00 -- 无法在 System.DateTime 和 System.String 上执行“=”操作。” 如题。 各位老师,我制作的项目使用了“非关联表数据同步”,在表格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 请大神帮助!!!!!! |
-- 作者:有点蓝 -- 发布时间:2021/7/21 8:39:00 -- 上面是【错误所在事件:表,基础数据表,DataColChanged】的全部代码吗? |
-- 作者:qibing19780 -- 发布时间:2021/7/21 15:00:00 -- 是的 |
-- 作者:有点蓝 -- 发布时间:2021/7/21 15:02:00 -- 看不出什么,调试一下:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错 |
-- 作者:qibing19780 -- 发布时间:2021/7/21 15:06:00 -- 调试语句应该怎么编,我昨天试了一下,没有显示是哪错误? |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2021/7/21 15:58:00 -- 现在调试的结果应该是“ Dim dr As DataRow = DataTables("mryxsj").Find(" 日期 = \'" & e.OldValue & "\'")”这句的问题,A表的“日期”和mryxsj的“日期”都是日期类型,窗口的是“DateTimePicker”,在表里直接输入没有问题,但是在窗口里输入就有问题了。 窗口事件设置了打开窗口增加一空白行,然后输入。
|
-- 作者:有点蓝 -- 发布时间:2021/7/21 16:08:00 -- 判断一下 if e.OldValue <> nothing then Dim dr As DataRow = DataTables("mryxsj").Find(" 日期 = \'" & e.OldValue & "\'") ……
|
-- 作者:qibing19780 -- 发布时间:2021/7/21 16:27:00 -- 这样判断了,不报错了。但是不能同步了 |
-- 作者:qibing19780 -- 发布时间: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("日期")
|