2009-04-19 10 views
0

J'ai deux instructions if et mon projet en voit un et pas l'autre. Voici le code:Deux si des instructions, pourquoi ne pas exécuter?

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 

Quand je trace mon code, je trouve cela va à la seconde si et puis aller à la fin si sans courir le code à l'intérieur du conditionnel.

+1

reformatez votre question afin qu'elle soit plus facile à lire. – Stevo

+1

Ce serait bien si vous formatiez du code - c'est assez difficile à lire sous cette forme. – hbw

+0

If (IsPostBack) Puis HandleUploadedFile() Dim savePath As String = "Images" –

Répondre

1

Que se passe-t-il dans HandleUploadedFile?

Si une erreur n'est pas détectée, vous risquez de ne pas respecter votre routine (n'atteignant jamais la seconde si).

Si fileUpload n'est pas déclaré ... même scénario.

Lorsque vous franchissez le pas, le voyez-vous sauter à la fin?

Editer: Aurez-vous vraiment un téléchargement de fichier lorsque la page n'a pas été postée? Peut-être que vous voulez vraiment mettre tout le bloc de code dans le bloc de code If IsPostBack?

Edit2: Vous pouvez simplement ajouter:

Public Sub HandleUploadedFile 

dessus de cette ligne:

Dim savePath As String = "Images\ " 

Et d'ajouter:

End Sub 

dessous de cette ligne:

End If 
+1

OH oui - Je voulais aussi mentionner (mais n'ose pas éditer ma réponse à nouveau) que vous devriez probablement tuer l'espace de fin dans la valeur que vous attribuez à savePath ou vous essayerez de suivre un autre problème. –

+0

pourquoi ne pas éditer? –

1

Je ne sais pas si je comprends bien la question, mais êtes-vous sûr que fileUpload.HasFile est vrai?