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

Accès aux données Discussion :

[VB.net][OleDB]récupérer la valeur d'un parametre de sortie


Sujet :

Accès aux données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 25
    Points : 18
    Points
    18
    Par défaut [VB.net][OleDB]récupérer la valeur d'un parametre de sortie
    Bonjour a tous,
    J'essai actuellement d'écrire une classe de connexion a ma bdd (sous SQL serveur), pour exécuter des procédures stockés. Mon problème vient quand je dois récupérer un paramètre 'OUTPUT'.

    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
     
    Try
         If (m_connection.State = ConnectionState.Open) Then
             MyBase.StatusConnection = BDD_Access.StatusConnection.InTransaction
             m_command.Connection = m_connection
             m_command.CommandType = CommandType.StoredProcedure
             m_command.CommandText = PS_concrete.GetName
             For i = 0 To PS_concrete.ParamCount - 1
                  m_command.Parameters.Add(PS_concrete.GetParam(i))
             Next
          End If
     
          m_Adpater.SelectCommand = m_command
     
          m_resultat.Reset()
          m_Adpater.Fill(m_resultat.ResultQuery)
     
          Dim test As Object = m_command.Parameters("@DateDebut").Value
    J'explique peut-être un petit peu:
    -PS_concrete est une classe représentant ma procédure stockée (avec les paramètres).
    -m_result est ma classe résultat: c'est la que je veux mettre les tables et les procédures de sortie

    Ma Procédure fonctionne bien, elle doit renvoyer une date.

    Dans l'état actuel, après l'exécution de mon code, test contient: 'DateTime {4}, c'est a dire le type de la variable.

    Si quelqu'un a une idée d'ou ça peut venir, de ce que j'ai put oublier..
    Je vous remercie d'avance.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Bon alors j'ai un peu mieux compris mon problème.
    Finalement ça n’avait rien à voir avec ce que je pensai.
    En fait, mon problème vient de la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_Adpater.Fill(m_resultat.ResultQuery)
    En fait ma procédure stocké de test ne renvoi pas de table, elle renvoi juste un paramètre OUTPUT, donc mon code s'arête a ce moment là.
    Comment je peux faire pour gérer ce cas là? (pas de table renvoyé dans la procédure stocké)

  3. #3
    Invité
    Invité(e)
    Par défaut
    tu as des methodes executeQuery ou executeScalar

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Merci.
    C'est pas tout a fait ce que je voulais, en fait. Mais C'est vrai que je n’ai pas été très clair.

    En fait je voulais faire une fonction pour lancer une procédure stockée. Que cette fonction fonctionne (ça fait bizarre d'écrire ça, mais je vois pas comment le dire autrement :p) dans tout les cas de figures, c'est à dire:
    - quand il y a des paramètres, ou qu’il n’y en a pas (des input et des output)
    - Quand la procédure renvoi une table ou n'en renvoi pas

    Je voulais savoir si il y avait un moyen relativement simple d'y arriver.
    Bon au pire je me résous à écrire 2 fonctions.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 34
    Points : 35
    Points
    35
    Par défaut appel à partir de c#
    Je te donne le source d'appel d'une procédure stockée en c#
    elle fonctionne :

    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
     
     
                string strConnection = global::Requetes_Sql.Properties.Settings.Default.nvaConnectionString;
                SqlConnection oConnect = new SqlConnection(strConnection);
     
                SqlCommand command = new SqlCommand("ETQ_NUMB", oConnect);
     
                command.CommandType = CommandType.StoredProcedure;
     
                SqlParameter Parametre = command.Parameters.AddWithValue("@CPP_CLE", "CLIENTS");
     
                SqlParameter parameter = new SqlParameter();
                parameter.ParameterName = "@cpp_num";
                parameter.IsNullable = true;
                parameter.DbType = DbType.Int32;
                parameter.Direction = ParameterDirection.Output;
     
                command.Parameters.Add(parameter);
     
     
                oConnect.Open();
     
                command.ExecuteReader();
     
                oConnect.Close();
    Tu récupéres le résultat dans parameter.Value

    Bonne chance

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/03/2009, 11h35
  2. Réponses: 5
    Dernier message: 14/06/2008, 13h30
  3. Réponses: 4
    Dernier message: 10/01/2006, 10h22
  4. [vb.net][combobox] récupérer la valeur avant changement
    Par graphicsxp dans le forum Windows Forms
    Réponses: 36
    Dernier message: 19/10/2005, 10h59
  5. [VB.NET] [ODBC] Récupérer des valeurs avec requête ODBC?
    Par Pleymo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/03/2005, 16h38

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