以文本方式查看主题

-  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=138467)

--  作者:gudao123456
--  发布时间:2019/7/31 23:10:00
--  为什么第二层代码不执行?
在执行内部函数:
For Each dr As DataRow In DataTables("sqxxb").DataRows
    If dr("sfydr")=False
        Dim path As String="D:\\贫困大学新生\\证明材料\\"& dr("nd") & "\\" & dr("高中学校") & "\\" & dr("申请人姓名")
        
        If FileSys.DirectoryExists(path)=False  Then
            FileSys.CreateDirectory(path)
        End If
        Dim sfzjyhkzp As New HttpClient(dr("身份证及资助卡照片"))
        sfzjyhkzp.GetFile(path & "\\" & dr("申请人姓名") & "身份证.JPG")
        Dim lqtzszp As New HttpClient(dr("录取通知书照片"))
        lqtzszp.GetFile(path & "\\" & dr("申请人姓名") & "通知书.JPG")
        If Tables("sqxxb").current.Isnull ("补建档证明材料")=False  Then
            Dim i As Integer=1
            
            For Each fl As String In  Tables("sqxxb").Current.DataRow.Lines("补建档证明材料")
                
                Dim zmcl As New HttpClient(fl)
                zmcl.GetFile(path & "\\" & dr("申请人姓名") & "补建档_" & i & ".JPG")
                i=i+1
            Next
            
        End If
        dr("zmcl")="D:\\贫困大学新生\\证明材料\\"& dr("nd") & "\\" & dr("高中学校") & "\\" & dr("申请人姓名")& "\\" & dr("申请人姓名") & "身份证.JPG"
        
        dr("sfydr")=True
    End If
Next
MessageBox.show("证明材料下载完成")
Return ""
时,为什么嵌套程序:
  If Tables("sqxxb").current.Isnull ("补建档证明材料")=False  Then
            Dim i As Integer=1
            
            For Each fl As String In  Tables("sqxxb").Current.DataRow.Lines("补建档证明材料")
                
                Dim zmcl As New HttpClient(fl)
                zmcl.GetFile(path & "\\" & dr("申请人姓名") & "补建档_" & i & ".JPG")
                i=i+1
            Next
            
        End If
条件成立时,“补建档证明材料”还是没有下载,即这部分程序不执行? 拿单个记录测试时,是执行的,一放到整个表执行,就一个都不执行了(外部的程序还是正常的),为什么?谢谢!

--  作者:有点蓝
--  发布时间:2019/8/1 10:16:00
--  
可能是这里的问题

Dim path As String="D:\\贫困大学新生\\证明材料\\"& dr("nd") & "\\" & dr("高中学校") & "\\" & dr("申请人姓名")
        
        If FileSys.DirectoryExists(path)=False  Then
            FileSys.CreateDirectory(path)
        End If

目录必须一层一层的创建,比如“D:\\贫困大学新生不存在,那么就无法创建“D:\\贫困大学新生\\证明材料”这个目录的

--  作者:gudao123456
--  发布时间:2019/8/2 0:40:00
--  
不是你说的原因,目录建的都正常,我又做了测试,发现记录全满足第二层条件的,即,记录全是:Tables("sqxxb").current.Isnull ("补建档证明材料")=False 的执行得很完美,没有问题,但如果记录既有Tables("sqxxb").current.Isnull ("补建档证明材料")=False  也有Tables("sqxxb").current.Isnull ("补建档证明材料")=true 的,第二层代码即:
If Tables("sqxxb").current.Isnull ("补建档证明材料")=False  Then
            Dim i As Integer=1
            
            For Each fl As String In  Tables("sqxxb").Current.DataRow.Lines("补建档证明材料")
                
                Dim zmcl As New HttpClient(fl)
                zmcl.GetFile(path & "\\" & dr("申请人姓名") & "补建档_" & i & ".JPG")
                i=i+1
            Next
            
        End If
就不执行了,就是说补建档材料就没有下载,第一层的材料下载正常。不知为何?

--  作者:有点蓝
--  发布时间:2019/8/2 9:12:00
--  
If dr.Isnull ("补建档证明材料")=False  Then
            Dim i As Integer=1
            
            For Each fl As String In  dr.Lines("补建档证明材料")
                
                Dim zmcl As New HttpClient(fl)
                zmcl.GetFile(path & "\\" & dr("申请人姓名") & "补建档_" & i & ".JPG")
                i=i+1
            Next
            
        End If

--  作者:gudao123456
--  发布时间:2019/8/2 10:31:00
--  
OK了,真是差之毫厘失之千里,谢谢!