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


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

主题:[求助]无法在 System.DateTime 和 System.String 上执行“=”操作

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


加好友 发短信
等级:婴狐 帖子:45 积分:653 威望:0 精华:0 注册:2016/1/5 9:48:00
[求助]无法在 System.DateTime 和 System.String 上执行“=”操作  发帖心情 Post By:2016/10/12 8:45:00 [只看该作者]

综合分布表

单位名称(监管对象情况_单位名称) ----> 字符型(30)

县(监管对象情况_单位地址_县) ----> 字符型(3)

乡镇(监管对象情况_单位地址_乡镇) ----> 字符型(4)

街道村(监管对象情况_单位地址_街道村) ----> 字符型(4)

门牌号(监管对象情况_单位地址_门牌号) ----> 字符型(30)

许可证号(监管对象情况_许可证号) ----> 字符型(30)

有效期限(监管对象情况_有效期限) ----> 日期型

法人姓名(监管对象情况_经营者情况_法人姓名) ----> 字符型(3)

联系电话(监管对象情况_经营者情况_联系电话) ----> 字符型(11)

从业人数(监管对象情况_经营者情况_从业人数) ----> 微整数

健康证数(监管对象情况_经营者情况_健康证数) ----> 微整数

主体类别(监管对象情况_主体业态_主体类别) ----> 字符型(4)

经营形式(监管对象情况_主体业态_经营形式) ----> 字符型(12)

普通项目(监管对象情况_经营项目_普通项目) ----> 字符型(10)

项目说明(监管对象情况_经营项目_项目说明) ----> 字符型(30)

评估时间(其他说明_量化分级情况_评估时间) ----> 日期型

等级(其他说明_量化分级情况_等级) ----> 字符型(1)

分数(其他说明_量化分级情况_分数) ----> 单精度小数

备注() ----> 字符型(1073741823)

计划名称1(监督检查情况_第一次检查情况_计划名称) ----> 字符型(30)

检查日期1(监督检查情况_第一次检查情况_检查日期) ----> 日期型

检查人员1(监督检查情况_第一次检查情况_检查人员) ----> 字符型(7)

检查结果1(监督检查情况_第一次检查情况_检查结果) ----> 字符型(3)

检查记录1(监督检查情况_第一次检查情况_检查记录) ----> 字符型(60)

整改期限1(监督检查情况_第一次检查情况_整改期限) ----> 日期型

复查结果1(监督检查情况_第一次检查情况_复查结果) ----> 字符型(3)

计划名称2(监督检查情况_第二次检查情况_计划名称) ----> 字符型(30)

检查日期2(监督检查情况_第二次检查情况_检查日期) ----> 日期型

检查人员2(监督检查情况_第二次检查情况_检查人员) ----> 字符型(7)

检查结果2(监督检查情况_第二次检查情况_检查结果) ----> 字符型(3)

检查记录2(监督检查情况_第二次检查情况_检查记录) ----> 字符型(60)

整改期限2(监督检查情况_第二次检查情况_整改期限) ----> 日期型

复查结果2(监督检查情况_第二次检查情况_复查结果) ----> 字符型(3) 


监督检查表

 

单位名称(监管对象情况_单位名称) ----> 字符型(30)

县(监管对象情况_单位地址_县) ----> 字符型(3)

乡镇(监管对象情况_单位地址_乡镇) ----> 字符型(4)

街道村(监管对象情况_单位地址_街道村) ----> 字符型(4)

门牌号(监管对象情况_单位地址_门牌号) ----> 字符型(30)

计划名称(检查情况_计划名称) ----> 字符型(30)

检查日期(检查情况_检查日期) ----> 日期型

检查人员(检查情况_检查人员) ----> 字符型(7)

检查结果(检查情况_检查结果) ----> 字符型(3)

检查记录(检查情况_检查记录) ----> 字符型(60)

整改期限(检查情况_整改期限) ----> 日期型

复查结果(检查情况_复查结果) ----> 字符型(3) 


已知上述两表的结构,欲实现的目的如下:
在“综合分布表”第一次检查情况中增加内容,监督检查表也对应增加此内容;
在综合分布表中更改第一次检查情况中的检查日期、检查结果或复查结果后,监督检查表也能同步修改。
同样地,在第二次检查情况中增加内容,监督检查表也对应增加此内容。

在综合分布表的DataColChanged事件代码设置如下:
 Select Case e.DataCol.name
    Case "检查日期1"
        Dim dr As DataRow = DataTables("监督检查表").Find("检查日期 = '" & e.OldValue & "'")
        If dr Is Nothing Then 
            dr = DataTables("监督检查表").AddNew()
            dr("单位名称") = e.DataRow("单位名称")
            dr("县") = e.DataRow("县")
            dr("乡镇") = e.DataRow("乡镇")
            dr("街道村") = e.DataRow("街道村")
            dr("门牌号") = e.DataRow("门牌号")
            dr("计划名称") = e.DataRow("计划名称1")
            dr("检查日期") = e.DataRow("检查日期1")
            dr("检查人员") = e.DataRow("检查人员1")
            dr("检查结果") = e.DataRow("检查结果1")
            dr("检查记录") = e.DataRow("检查记录1")
            dr("整改期限") = e.DataRow("整改期限1")
            dr("复查结果") = e.DataRow("复查结果1")
        Else
            dr("检查日期") = e.DataRow("检查日期1")
        End If
    Case "检查结果","复查结果"
        Dim dr As DataRow = DataTables("监督检查表").Find("检查日期 = '" & e.DataRow("检查日期1") & "'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select

测试后显示运行错误:
调用的目标发生了异常。
无法在 System.DateTime 和 System.String 上执行“=”操作。

日期时间型数据与字符型数据代码不一样,但未能找出答案。特向大神求教。

附注:如果该目的无法实现,将之反之亦可。
如在监督检查表中输入相应数据,在综合分布表也能对应增加相应内容。


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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/12 9:03:00 [只看该作者]

Select Case e.DataCol.name
    Case "检查日期1"
        If e.OldValue <> Nothing Then
            Dim dr As DataRow = DataTables("监督检查表").Find("检查日期 = '" & e.OldValue & "'")
            If dr Is Nothing Then
                dr = DataTables("监督检查表").AddNew()
                dr("单位名称") = e.DataRow("单位名称")
                dr("县") = e.DataRow("县")
                dr("乡镇") = e.DataRow("乡镇")
                dr("街道村") = e.DataRow("街道村")
                dr("门牌号") = e.DataRow("门牌号")
                dr("计划名称") = e.DataRow("计划名称1")
                dr("检查日期") = e.DataRow("检查日期1")
                dr("检查人员") = e.DataRow("检查人员1")
                dr("检查结果") = e.DataRow("检查结果1")
                dr("检查记录") = e.DataRow("检查记录1")
                dr("整改期限") = e.DataRow("整改期限1")
                dr("复查结果") = e.DataRow("复查结果1")
            Else
                dr("检查日期") = e.DataRow("检查日期1")
            End If
        End If
    Case "检查结果","复查结果"
        If e.DataRow.Isnull("检查日期1") = False Then
            Dim dr As DataRow = DataTables("监督检查表").Find("检查日期 = '" & e.DataRow("检查日期1") & "'")
            If dr IsNot Nothing Then
                dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
            End If
        End If
End Select

另外这2个表应该是根据“单位名称”进行关联的吧,也许这样更合理

Dim dr As DataRow = DataTables("监督检查表").Find("检查日期 = '" & e.OldValue & "' and 单位名称='" & e.DataRow("单位名称") & "'")



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


加好友 发短信
等级:婴狐 帖子:45 积分:653 威望:0 精华:0 注册:2016/1/5 9:48:00
[求助]回复:(有点蓝)Select Case e.DataCol.name  &...  发帖心情 Post By:2016/10/12 11:11:00 [只看该作者]

谢谢版主的指导~
采用上述代码后,运行时不再弹出错误窗口。
但是无法同步日期数据,截图如下:
输入的内容如下:

图片点击可在新窗口打开查看此主题相关图片如下:01.png
图片点击可在新窗口打开查看
同步的内容如下:

图片点击可在新窗口打开查看此主题相关图片如下:02.png
图片点击可在新窗口打开查看
不知如何解决……

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/12 11:27:00 [只看该作者]

Select Case e.DataCol.name
    Case "检查日期1"
        Dim dr As DataRow 
        If e.OldValue <> Nothing Then
            dr = DataTables("监督检查表").Find("检查日期 = '" & e.OldValue & "' and 单位名称='" & e.DataRow("单位名称") & "'")
        Else
            dr = DataTables("监督检查表").Find("单位名称='" & e.DataRow("单位名称") & "' and 检查日期 is null")
        End If
        If dr Is Nothing Then
            dr = DataTables("监督检查表").AddNew()
            dr("单位名称") = e.DataRow("单位名称")
            dr("县") = e.DataRow("县")
            dr("乡镇") = e.DataRow("乡镇")
            dr("街道村") = e.DataRow("街道村")
            dr("门牌号") = e.DataRow("门牌号")
            dr("计划名称") = e.DataRow("计划名称1")
            dr("检查日期") = e.DataRow("检查日期1")
            dr("检查人员") = e.DataRow("检查人员1")
            dr("检查结果") = e.DataRow("检查结果1")
            dr("检查记录") = e.DataRow("检查记录1")
            dr("整改期限") = e.DataRow("整改期限1")
            dr("复查结果") = e.DataRow("复查结果1")
        Else
            dr("检查日期") = e.DataRow("检查日期1")
        End If
    Case "检查结果","复查结果"
        If e.DataRow.Isnull("检查日期1") = False Then
            Dim dr As DataRow = DataTables("监督检查表").Find("检查日期 = '" & e.DataRow("检查日期1") & "' and 单位名称='" & e.DataRow("单位名称") & "'")
            If dr IsNot Nothing Then
                dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
            End If
        Else
            msgbox("请先输入检查日期1")
        End If
End Select

 回到顶部