IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

déclaré une variable en entrée/sortie dans une sub


Sujet :

VB.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 189
    Points : 87
    Points
    87
    Par défaut déclaré une variable en entrée/sortie dans une sub
    Bonjour, voila j'ai une sub dans une classe. Je fais appel à elle à partir d'une form et je voudrais envoyer un booleen qui devra etre mis à true ou false dans ma sub se trouvant dans ma classe et pouvoir récupérer le true ou false dans le code de ma form et pouvoir faire évoluer mon code en fonction de çà

    d'avance merci

    @++
    dubidon
    "Un jour j'y arriverais tout seul, si si je vous le jure "

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    dans ces cas là on fait une function et non une sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public sub faitqqch()
    ...
    end sub
     
     
    public function calculeqqch() as boolean
    end function
    plusieurs possibilités d'affectation :
    calculeqqch = valeur
    ou return valeur
    return arrete l'execution de la function alors que l'autre méthode continue l'execution

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public function toggle(valeur as boolean) as boolean
      return not valeur
    end function
    utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monBool = toggle(monBool)
    dans le pire des cas tu peux aussi faire exactement ce que tu voulais avec byref
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public sub (ByRef param as boolean)
    param = not param
    end sub
    byref spécifie que l'on travaille avec la variable qui a été passé et non une copie (byval)

    peu conseillé tout de meme
    et pour un objet byref ou byval ont un effet type byref
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 189
    Points : 87
    Points
    87
    Par défaut
    eh bien j'ai bien mis le byval, comme je l'avais fait avec mon dataset que je renvoyais, autant pour le dataset le renvoie ce fait bien, autant pour le booleen rien ne se passe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
        Public Sub ExecReq(ByVal req As String, ByVal table As String, ByVal datas As DataSet, ByVal booleen As Boolean)
     
            'on vide le dataset 
            'ObjetDataSet.Clear()
            Try
                'Instanciation d'un Objet Connexion
                objetconnection = New SqlConnection
                'Donner à la propriété ConnectionString les paramètres de connexion
                objetconnection.ConnectionString = strConn
                'Ouvrir la connexion
                objetconnection.Open()
                'Instancier un objet Command
                ObjetCommand = New SqlCommand(req)
                'Instancier un objet Adapter
                ObjetDataAdapter = New SqlDataAdapter(ObjetCommand)
                'initialiser l'objet Command
                ObjetCommand.Connection() = objetconnection
                'initialiser l'objet OleDBComandBuilder (sinon pas d'update)
                ObjetCB = New SqlCommandBuilder(ObjetDataAdapter)
                'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
                ObjetDataAdapter.Fill(datas, table)
            Catch ex As Exception
                MessageBox.Show(ex.Message)
                booleen = False
            Finally
                If Not (objetconnection Is Nothing) Then objetconnection.Close()
            End Try
     
        End Sub
    donc en gros dans ma form ou je fais appel à cette focntion, j'initialise mon booleen à true mais si j'ai une erreur j'aimerais le mettre a false comme çà je peut faire un test pour voir si tout s'est bien passé ou non.
    Vu que j'envoie plusieurs donné (requète, table, dataset et booleen) et que je reçois le dataset et le booleen est ce que faire une focntion est toujours possible ??

    @++
    dubidon
    "Un jour j'y arriverais tout seul, si si je vous le jure "

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par dubidon
    eh bien j'ai bien mis le byval, comme je l'avais fait avec mon dataset que je renvoyais, autant pour le dataset le renvoie ce fait bien, autant pour le booleen rien ne se passe
    j'ai dit BYREF pas B§YVAL pour que les modifications de la valeur soir possible

    voici le code possible avec une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
        Public function ExecReq(ByVal req As String, ByVal table As String, ByVal datas As DataSet) As Boolean
     
            'on vide le dataset 
            'ObjetDataSet.Clear()
            Try
                'Instanciation d'un Objet Connexion
                objetconnection = New SqlConnection
                'Donner à la propriété ConnectionString les paramètres de connexion
                objetconnection.ConnectionString = strConn
                'Ouvrir la connexion
                objetconnection.Open()
                'Instancier un objet Command
                ObjetCommand = New SqlCommand(req)
                'Instancier un objet Adapter
                ObjetDataAdapter = New SqlDataAdapter(ObjetCommand)
                'initialiser l'objet Command
                ObjetCommand.Connection() = objetconnection
                'initialiser l'objet OleDBComandBuilder (sinon pas d'update)
                ObjetCB = New SqlCommandBuilder(ObjetDataAdapter)
                'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
                ObjetDataAdapter.Fill(datas, table)
            Catch ex As Exception
                MessageBox.Show(ex.Message)
                return false
            Finally
                If Not (objetconnection Is Nothing) Then objetconnection.Close()
            End Try
            return true ' ou ExecReq = true , return sort en plus d'affecter la variable
        End Sub
    ensuite pour l'utilisation tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if execreq(tes parametres) = false then
    'ca s'est pas bien passé
    else
    ' c'est ok
    end if
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 189
    Points : 87
    Points
    87
    Par défaut
    ralala la fatigue commence a se faire sentir en tout cas merci a toi, je ne savais pas qu'on pouvais passé des variable sen paramètre dans une fonction et avoir des données en retour.

    En tout cas tout fonctionne parfaitement bien grâce a toi

    merci

    @++
    dubidon
    "Un jour j'y arriverais tout seul, si si je vous le jure "

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

Discussions similaires

  1. Récupération de la valeur d une variable elle même contenue dans une variable
    Par guiplongeur dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 16/03/2015, 16h23
  2. Réponses: 2
    Dernier message: 14/05/2014, 10h23
  3. Réponses: 3
    Dernier message: 13/12/2009, 17h04
  4. [MySQL] récupérer dans une boucle chaque information MySQL dans une variable différente
    Par gtenthorey dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/05/2007, 22h34
  5. Réponses: 1
    Dernier message: 17/01/2007, 21h52

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