以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  按钮中后台筛选表的条件,判断失效看看怎么回事吧。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=121005)

--  作者:guosheng
--  发布时间:2018/6/27 15:27:00
--  按钮中后台筛选表的条件,判断失效看看怎么回事吧。
在确定按钮的click事件中做判断:实际上没有符合条件的drs,messagebox.show(1)和messagebox.show(2)弹窗了;直接就到messagebox.show(5),而且输出的str为空。怎么回事啊。理论上应该是弹窗messagebox.show(6) 的啊。
是不是SQLSelect语句有问题啊。
    If drr1("等级")="一级"
        Dim Str As String
        Dim drs As List(of DataRow) = DataTables("计划执行情况表").SQLSelect("项目编号 =\'"& drr1("项目编号") &"\' And  一级编号=\'"& drr1("一级编号") &"\' and 等级=\'二级\'")
messagebox.show(1)
        If drs IsNot Nothing
messagebox.show(2)
            For Each dr As DataRow In drs
messagebox.show(3)
                If dr.isnull("实际完成时间")
messagebox.show(4)
                    Str=dr("责任部门") & "承办的任务:" & dr("任务名称") & ";" & Str
                End If
            Next
messagebox.show(5)
            messagebox.show("一级节点的子任务确认完成后,才能确认完成相应的一级节点任务:" & Str)
            Return
        Else
messagebox.show(6) 
            
            cr("工作进展过程记录") = user.name & "在" & rq & "更新进展记录:【" & e.Form.Controls("工作进展").value & "】" & vbcrlf & cr("工作进展过程记录")
            
            cr("完成提交人")=user.name
            cr("完成提交日期")=rq
            Tables("计划执行情况表").save
            forms("增加一条主项计划完成窗口").close()
            
        End If

--  作者:有点甜
--  发布时间:2018/6/27 15:31:00
--  

If drs IsNot Nothing

 

改成

 

If drs.count > 0 Then


--  作者:guosheng
--  发布时间:2018/6/27 16:04:00
--  

改成drs.count 确实判断成功了。

分别什么时候用IsNot Nothing 和count判断行是否存在啊?这个为什么用IsNot Nothing判断会有问题啊?


--  作者:有点甜
--  发布时间:2018/6/27 16:26:00
--  
你那个drs是集合,select返回的一个集合不是nothing,要判断集合里面的行数。