Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 两个if语句,为什么一个不执行?_Vb.net_If Statement_Switch Statement - Fatal编程技术网

Vb.net 两个if语句,为什么一个不执行?

Vb.net 两个if语句,为什么一个不执行?,vb.net,if-statement,switch-statement,Vb.net,If Statement,Switch Statement,我有两个if语句,我的项目看到一个而不是另一个。代码如下: If (IsPostBack) Then HandleUploadedFile() End If Dim savePath As String = "Images\ " If (fileUpload.HasFile) Then Dim fileName As String = fileUpload.FileName savePath = Server.MapPath(savePath) + fileName file

我有两个if语句,我的项目看到一个而不是另一个。代码如下:

If (IsPostBack) Then
  HandleUploadedFile()
End If

Dim savePath As String = "Images\ "

If (fileUpload.HasFile) Then
  Dim fileName As String = fileUpload.FileName
  savePath = Server.MapPath(savePath) + fileName
  fileUpload.SaveAs(savePath)
  Me.Label1.Text = "Your file was saved as " & fileName
  adp.Insert(fileUpload.FileName)
  Me.Label1.Text = "You did not specify a file to upload."
End If

当我跟踪代码时,我发现它会转到第二个if,然后转到end if,而不在条件中运行代码。

HandleUploadedFile中发生了什么

如果一个错误没有被捕获,你可能会从你的日常工作中掉出来(永远不会出现第二个错误)

如果未声明fileUpload。。。同样的情况

当你跨过这一步时,你看到它跳到了尽头吗

编辑:当页面没有被发回时,你真的会上传文件吗?也许你真的想把整个代码块放到If-IsPostBack代码块中

编辑2: 你可以加上:

Public Sub HandleUploadedFile
在这条线上:

Dim savePath As String = "Images\ "
End If
并加上:

End Sub
在这一行下面:

Dim savePath As String = "Images\ "
End If

不确定我是否正确理解了这个问题,但你确定fileUpload.HasFile是真的吗?

请重新格式化你的问题,使其更易于阅读。如果你用这种形式格式化了很难阅读的代码,那就太好了。如果(IsPostBack),那么handleupLoadFile()Dim savePath为String=“Images\”我已经编辑了我的答案,以包含我认为您需要的功能。第二个if块实际上看起来像HandleUploadedFile子例程的实现。尝试一下,看看它是否能像您期望的那样工作。哦,是的-我还想说(但不敢再编辑我的答案),您可能应该删除分配给savePath的值中的尾随空格,否则您将试图跟踪另一个问题。