以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  删除记录的代码问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=154366)

--  作者:0855yangjing
--  发布时间:2020/9/12 18:34:00
--  删除记录的代码问题
请问哪里出了问题,以前可以删除记录的,几个月了就不可以了?
Dim Filter   As   String
With e.Form.Controls("Comzjh")
    If .Value   IsNot   Nothing  Then
        Filter =   "主机号 = \'" & .Value &   "\'"
    End   If
End   With
With e.Form.Controls("Comhlh")
    If .Value   IsNot   Nothing   Then
        If Filter > ""   Then
            Filter = Filter &   " And "
        End   If
        Filter = Filter &   "回路号 = \'" & .Value &   "\'"
        Tables("报警设备定义").Filter = Filter
        Dim dr As DataRow
        dr = DataTables("报警设备定义").Find(Filter)
        Dim Result As DialogResult
        Result = MessageBox.Show("你确定要删除该回路的所有数据吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
        If Result = DialogResult.Yes Then
            DataTables("报警设备定义").DeleteFor("回路号 = \'" & .Value &   "\'")
        Else
            MessageBox.Show("请及时保存修改的数据!","提示")
        End If
    End   If
End   With
[此贴子已经被作者于2020/9/12 18:53:35编辑过]

--  作者:有点蓝
--  发布时间:2020/9/13 19:56:00
--  
调试技巧http://www.foxtable.com/webhelp/topics/1485.htm

是不是没有符合条件的数据?或者没有加载?另外上面的代码逻辑如果控件Comhlh没有填写内容是不会执行删除操作的
……
        Filter = Filter &   "回路号 = \'" & .Value &   "\'"
        Tables("报警设备定义").Filter = Filter
msgbox(Tables("报警设备定义").rows.count) ‘’有几行数据?
        Dim dr As DataRow
        dr = DataTables("报警设备定义").Find(Filter) \'这一句代码没有任何用处
        Dim Result As DialogResult
        Result = MessageBox.Show("你确定要删除该回路的所有数据吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
        If Result = DialogResult.Yes Then
msgbox("回路号 = \'" & .Value &   "\'") ‘这个表已经加载的数据是否有符合这个条件的数据?
            DataTables("报警设备定义").DeleteFor("回路号 = \'" & .Value &   "\'")
        Else
            MessageBox.Show("请及时保存修改的数据!","提示")
        End If
    End   If
End   With