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 :

Récupérer la valeur de retour d'une procédure stockée avec ADO.NET [Débutant]


Sujet :

VB.NET

  1. #1
    Membre habitué
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 154
    Points : 167
    Points
    167
    Par défaut Récupérer la valeur de retour d'une procédure stockée avec ADO.NET
    Bonjour à tous !

    Je n'arrive pas à récupérer la valeur de retour d'une procédure stockée (BDD sous SQL Serveur 2008).

    Ma table ressemble à ca :

    maTable(id, val1, val2 ..). Mon id est une variable auto incrémenté et c'est cette valeur que je voudrais récupérer.

    Côté procédure stockée :

    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
    CREATE PROCEDURE insertEXP(
         @val1 VARCHAR(30), 
         @val2 INT,
         ...)
    AS
     
    BEGIN
         SET NOCOUNT ON;
     
    INSERT maTable (
         val1,
         val2,
         ...
    )
     
    VALUES (
         @val1,
         @val2,
    )
     
    RETURN @@IDENTITY 
     
    END
    GO

    Et pour mon code VB.NET :

    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
    Dim insertEXP As SqlCommand = New SqlCommand("insertEXP")
     
         With insertEXP.Parameters
              .Add(New SqlParameter("@val1", SqlDbType.VarChar))
              .Add(New SqlParameter("@val2", SqlDbType.Int))
              ...
         End With
     
         With insertEXP
              .Parameters("@val1").Value = val1
              .Parameters("@val2").Value = val2
              ...
         End With
     
     
     
    If connection.State = ConnectionState.Open Then
         Try
              cmdString.ExecuteNonQuery()
     
         Catch ex As Exception
              MsgBox(ex.Message)
         End Try
    Else
              MsgBox("Server connection failure ", MsgBoxStyle.OkOnly, "Status")
    End If
    connection.Close()
    Je voudrais savoir comment faire pour assigner la valeur de retour à une variable dans le code VB.NET

    Merci d'avance,

    Jah

  2. #2
    Invité
    Invité(e)
    Par défaut
    Comme ça, ça devrait marcher :
    Code VB.Net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    If connection.State = ConnectionState.Open Then
         Try
    		Dim retval as SqlParameter
    		retval = cmdString.Parameters.Add("@val", SqlDbType.Int)
    		retval.Direction = ParameterDirection.ReturnValue
            cmdString.ExecuteNonQuery()
    		int returnValue = (int)retval.Value
         Catch ex As Exception
              MsgBox(ex.Message)
         End Try
    Else

  3. #3
    Membre habitué
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 154
    Points : 167
    Points
    167
    Par défaut
    Bonjour h2s84,

    Merci pour ta réponse

    J'ai un peu modifié le code pour pouvoir compiler et ca fonctionne parfaitement

    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
    If connection.State = ConnectionState.Open Then
         Try
              Dim retval As SqlParameter
              retval = cmdString.Parameters.Add("@val", SqlDbType.Int)
              retval.Direction = ParameterDirection.ReturnValue
     
              cmdString.ExecuteNonQuery()
     
              Dim returnValue As Integer = CInt(retval.Value)
     
         Catch ex As Exception
              MsgBox(ex.Message)
         End Try
    Else
         MsgBox("Server connection failure ", MsgBoxStyle.OkOnly, "Status")
    End If
    Merci beaucoup pour l'aide !

    Jah

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/10/2010, 21h55
  2. Réponses: 1
    Dernier message: 19/03/2008, 11h01
  3. [2000] Récupérer la valeur de retour d'une procédure stockée
    Par drinkmilk dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 25/08/2006, 09h46
  4. Valeur de retour d'une procédure stockée
    Par Rudyweb dans le forum MFC
    Réponses: 4
    Dernier message: 25/02/2005, 17h52

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