1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    février 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2016
    Messages : 2
    Points : 1
    Points
    1

    Par défaut La condition IF ne s'applique pas correctement VB.Net

    Bonjour,

    Je suis nouvelle sur le forum et je suis en train de faire un programme de gestion pour notre entreprise (uniquement pour notre usage).

    Je voudrais remplacer une image:
    --> si elle existe déjà dans le répertoire (label3.Text = "oui")
    Ou créer l'image dans le répertoire:
    --> si elle n'existe pas (label3.Text = "non")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If My.Computer.FileSystem.FileExists("C:\Users\Delphine\Documents\Visual Studio 2012\Projects\Facturation\bin\Debug\Document\" & NumDocumentTextBox.Text & NomDocumentTextBox.Text & ".jpg") Then
                Label3.Text = "Oui"
            Else
                Label3.Text = "Non"
            End If
    Le problème est que lorsque j'appuie sur mon button_1, soit il me met "voulez-vous remplacer le fichier?" (ça c'est correct), mais lorsque l'image n'existe pas, rien ne se passe.

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            dbconn.ConnectionString = "Data Source=ACERDEDE;Initial Catalog=BasedeDonnees;Integrated Security=True"
            adt = New SqlDataAdapter("update Document set NomDocument = '" + NomDocumentTextBox.Text + "', NomExpediteur = '" + NomExpediteurTextBox.Text + "', DateExpediteur = '" + DateExpeditionTextBox.Text + "', Commentaire = '" + CommentaireTextBox.Text + "' WHERE NumDocument like '" + NumDocumentTextBox.Text + "'", dbconn)
            adt.Fill(ds)
            If Label3.Text = "oui" Then
                Dim reponse = MsgBox("Voulez-vous remplacer le fichier existant?", vbYesNo, "Enregistrement") 
                If reponse = vbYes Then My.Computer.FileSystem.DeleteFile("C:\Users\Delphine\Documents\Visual Studio 2012\Projects\Facturation\bin\Debug\Document\" & NumDocumentTextBox.Text & NomDocumentTextBox.Text & ".jpg")
                Me.Close()
            ElseIf Label3.Text = "non" Then
                File.Copy(textPath.Text, "Document\" & NumDocumentTextBox.Text & NomDocumentTextBox.Text & ".jpg")
                Me.Close()
            End If
            ' Document4.DocumentTableAdapter.Fill(Document4.BasedeDonneesDataSet.Document)
        End Sub
    Merci pour votre aide

  2. #2
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    novembre 2009
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : novembre 2009
    Messages : 1 418
    Points : 3 261
    Points
    3 261

    Par défaut

    Là dans le code que tu fournis il ne devrait rien se passer, sauf si tu n'appelles jamais ta premiere fonction (celle qui définis à Oui ou Non) et que par défaut ton label3.text = "oui".
    La différence subtile, est que dans un cas tu utilises des majuscules, alors que dans ton test tu utilises des miniscules.

    Je te conseille de passer par des constantes que tu utiliseras partout ou tu veux tester une egalité sur le contenu du label.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    private string const LABEL_OUI="Oui";
    private string const LABEL_NON="Non";
    Mais de manière générale on ne se base pas sur le contenu du label parceque si demain tu n'affiches plus ce label ton programme ne fonctionnera plus sans faire des modifications partout.

    Il faut que tu fasses une fonction type bool qui va servir uniquement à savoir si le fichier est présent ou non.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Function IsFilePresent As Bool
    Return My.Computer.FileSystem.FileExists("C:\Users\Delphine\Documents\Visual Studio 2012\Projects\Facturation\bin\Debug\Document\" & NumDocumentTextBox.Text & NomDocumentTextBox.Text & ".jpg")
    End Function
    et tu appelles cette fonction partout ou tu en as besoin.

    Tu as d'autre problème dans ton code, par exemple tu utilises un chemin entier qui ne fonctionnera donc que dans ton projet de debug.
    Tu devrais également utiliser des paramètres pour la requetes SQL pour en rendre la lecture plus agréable et pour plus de sécurité.
    https://docs.microsoft.com/en-us/dot...ter-parameters

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    février 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2016
    Messages : 2
    Points : 1
    Points
    1

    Par défaut

    Super!

    Ca fonctionne!

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. border-radius ne s'appliquant pas correctement.
    Par rocketter dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 06/09/2013, 17h32
  2. Réponses: 1
    Dernier message: 25/01/2011, 23h24
  3. Condition qui fonction pas correctement
    Par letoulouzin31 dans le forum JavaScript
    Réponses: 11
    Dernier message: 16/11/2009, 16h04
  4. Une condition ne s'applique pas. Pourquoi ? [Débutant]
    Par arnomedia dans le forum VB.NET
    Réponses: 7
    Dernier message: 27/11/2007, 11h05
  5. [IB71] mon Blob ne marche pas correctement
    Par BoeufBrocoli dans le forum InterBase
    Réponses: 2
    Dernier message: 17/09/2003, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo