Foxtable(狐表)用户栏目专家坐堂 → 此行已从表中移除并且没有任何数据


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

主题:此行已从表中移除并且没有任何数据

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


加好友 发短信
等级:幼狐 帖子:83 积分:918 威望:0 精华:0 注册:2019/9/20 14:29:00
此行已从表中移除并且没有任何数据  发帖心情 Post By:2021/4/13 11:21:00 [只看该作者]

出现这个异常提示,代码如下,老师帮忙看看是什么原因:

 

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:表,会议室,DataColChanged
详细错误信息:
调用的目标发生了异常。
此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据

 

Select Case e.DataCol.Name
    Case "开始时间"
        If e.DataRow("日期") = "01/01/0001" Then
            MessageBox.Show("请先填写日期!")
            e.DataRow("开始时间") = Nothing
        Else
            DataTables("会议室").LoadFilter = "日期 = '" & e.DataRow("日期") & "' "
            DataTables("会议室").Load
            Dim n As Integer = Tables("会议室").Rows.Count
            Dim i As Integer
            For i = 0 To n-2
                Dim r As Row = Tables("会议室").Rows(i)
                If r("开始时间") < e.DataRow("开始时间") And r("结束时间") > e.DataRow("开始时间") Then
                    MessageBox.Show("会议时间重叠,请从新填写会议时间!")
                End If
            Next
        End If
    Case "结束时间"
        If e.DataRow("开始时间") = "01/01/0001" Then
            MessageBox.Show("请先填写开始时间!")
            'e.Cancel = True
            e.DataRow("结束时间") = Nothing
        Else
            DataTables("会议室").LoadFilter = "日期 = '" & e.DataRow("日期") & "' "
            DataTables("会议室").Load
            Dim n As Integer = Tables("会议室").Rows.Count
            Dim i As Integer
            For i = 0 To n-2
                Dim r As Row = Tables("会议室").Rows(i)
                If r("开始时间") < e.DataRow("开始时间") And r("结束时间") > e.DataRow("开始时间") Or r("开始时间") < e.DataRow("结束时间") And r("结束时间") > e.DataRow("结束时间") Then
                    MessageBox.Show("会议时间重叠,请从新填写会议时间!")
                End If
            Next
        End If
End Select


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


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

不要在DataColChanged事件有任何加载自己的代码,下面代码导致当前表的所有行都变了,e.DataRow已经不存在,再使用就出错了

            DataTables("会议室").LoadFilter = "日期 = '" & e.DataRow("日期") & "' "
            DataTables("会议室").Load

 回到顶部