Foxtable(狐表)用户栏目专家坐堂 → 为什么第二层代码不执行?


  共有3991人关注过本帖树形打印复制链接

主题:为什么第二层代码不执行?

帅哥哟,离线,有人找我吗?
gudao123456
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:855 积分:6402 威望:0 精华:0 注册:2017/11/21 21:31:00
为什么第二层代码不执行?  发帖心情 Post By: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
条件成立时,“补建档证明材料”还是没有下载,即这部分程序不执行? 拿单个记录测试时,是执行的,一放到整个表执行,就一个都不执行了(外部的程序还是正常的),为什么?谢谢!

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113782 积分:579489 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:855 积分:6402 威望:0 精华:0 注册:2017/11/21 21:31:00
  发帖心情 Post By: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
就不执行了,就是说补建档材料就没有下载,第一层的材料下载正常。不知为何?

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113782 积分:579489 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:855 积分:6402 威望:0 精华:0 注册:2017/11/21 21:31:00
  发帖心情 Post By:2019/8/2 10:31:00 [只看该作者]

OK了,真是差之毫厘失之千里,谢谢!

 回到顶部