以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=117251)

--  作者:chnfo
--  发布时间:2018/4/9 15:52:00
--  [求助]
在表P的BeforeDeleteDataRow事件中,有这样的代码

For Each dt As DataTable In DataTables
    If dt.DataCols.Contains("PID") Then
        systemready = False
MessageBox.Show(dt.Name & "准备删除")
        Dim fil As String = "PID = \'" & e.DataRow("ID") & "\'"
        dt.SQLDeleteFor(fil)
        dt.RemoveFor(fil)
MessageBox.Show(dt.Name & "删除OK")
        systemready = True
    End If
Next

在其中一个表X的时候,先弹出表X准备删除,然后报出一个错误

.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.3.9.1
错误所在事件:
详细错误信息:
无法找到列 ModC。

然后关闭这个弹窗,然后其它的删除操作又继续执行。

但我查了所有与表X,它本身就没有ModC这一列,删除表X的视图,仍然会报出错误,这是什么问题?



------把所有的表视图全部清空,干净了。
---感觉这个表视图的功能有待改进,比如原来有10个字段,表视图中用到了其中的8个,后来删除了这8个字段中的其中几个,没有重新定义表视图,结果就会在一些地方报出错误。已经被这个坑了两次了。
[此贴子已经被作者于2018/4/9 16:13:06编辑过]

--  作者:有点甜
--  发布时间:2018/4/9 16:37:00
--  
回复chnfo,表视图无法预知你删除或者增加列。所以你设置视图后如果修改了表结构,建议重新设置视图。
--  作者:chnfo
--  发布时间:2018/4/9 17:26:00
--  
增加列可以不管,但删除列应当可以识别的。---个人觉得可以优化一下。