以文本方式查看主题 - 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了,真是差之毫厘失之千里,谢谢! |