以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 条件删除指定表内容提示错误。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=57993)

--  作者:wumingrong1
--  发布时间:2014/10/9 17:48:00
--  [求助] 条件删除指定表内容提示错误。
我在表BeforeDeleteDataRow中写有以下命令;想实现当我点击删除按钮时,”业务名称“全部为空的情况下,能够删除"机房板件端口表"中符号条件的行;但是在条件符号的情况下提示错误,帮我看看命令错在哪?

Dim dr As DataRow = e.DataRow

If dr("设备编号") Is Nothing Then

Dim fdr As DataRow = DataTables("机房板件端口表").Find("设备名称 = \'" & dr("设备名称") & "\' and 设备型号 = \'" & dr("设备型号") & "\' and 板件型号 = \'" & dr("板件型号") & "\' and 机房名称 = \'" & dr("机房名称") & "\' and 板件槽位 = \'" & dr("板件槽位") & "\'  And 业务名称 Is not null")

If fdr IsNot Nothing Then

    msgbox("该板件端口配有业务,不能删除")
    e.Cancel = True

Else

    DataTables("机房板件端口表").DeleteFor("设备名称 = \'" & dr("设备名称") & "\' and 设备型号 = \'" & dr("设备型号") & "\' and 板件型号 = \'" & dr("板件型号") & "\' and 机房名称 = \'" & dr("机房名称") & "\' and 板件槽位 = \'" & dr("板件槽位") & "\'")

End If
End If


图片点击可在新窗口打开查看此主题相关图片如下:360截图20141009174610296.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2014-10-10 9:03:50编辑过]

--  作者:Bin
--  发布时间:2014/10/9 17:52:00
--  
调试一下看看是那一行报错,某个地方有空值吧
--  作者:wumingrong1
--  发布时间:2014/10/10 9:19:00
--  
插入  Output.Show(1) 好像没什么反应。

--  作者:有点甜
--  发布时间:2014/10/10 9:21:00
--  
 回复3楼,你去看看你的删除行事件是否写了什么代码啊,可能触发了那里的代码了。
--  作者:wumingrong1
--  发布时间:2014/10/10 9:42:00
--  
测试了一下,如果没有下面红色部分这个判断条件,命令就可以正常执行;加入该判断命令就不行。(该命令的作用是想 判断 如果当前表“机房设备板件表”的‘设备编号’列未输入内容,就执行下面的命令

Dim dr As DataRow = e.DataRow
If  DataTables("机房设备板件表").DataCols("设备编号") Is Nothing Then 
Dim fdr As DataRow = DataTables("机房板件端口表").Find("设备名称 = \'" & dr("设备名称") & "\' and 设备型号 = \'" & dr("设备型号") & "\' and 板件型号 = \'" & dr("板件型号") & "\' and 机房名称 = \'" & dr("机房名称") & "\' and 板件槽位 = \'" & dr("板件槽位") & "\'  And 业务名称 Is not null")
\'Dim fdr As DataRow = DataTables("机房板件端口表").Find("设备名称 = \'" & dr("设备名称") & "\' and 设备型号 = \'" & dr("设备型号") & "\' and 板件型号 = \'" & dr("板件型号") & "\' and 机房名称 = \'" & dr("机房名称") & "\' and 板件槽位 = \'" & dr("板件槽位") & "\'  and 设备编号 = \'" & dr("设备编号") & "\' and 业务名称 is not null")
If fdr IsNot Nothing Then
    msgbox("有内容,不能删除")
    e.Cancel = True
Else
    DataTables("机房板件端口表").DeleteFor("设备名称 = \'" & dr("设备名称") & "\' and 设备型号 = \'" & dr("设备型号") & "\' and 板件型号 = \'" & dr("板件型号") & "\' and 机房名称 = \'" & dr("机房名称") & "\' and 板件槽位 = \'" & dr("板件槽位") & "\'")
End If

End If

--  作者:有点甜
--  发布时间:2014/10/10 9:45:00
--  

改成

 

If e.DataRow.Isnull("设备编号") Then