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

C# Discussion :

Exécution de procédure stockée depuis un projet C#


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Exécution de procédure stockée depuis un projet C#
    Bonjour,

    Je vous explique mon problème:

    Dans ma base de données SQL server j'ai une procédure stockée qui prend en paramètre 2 int et 1 string.

    Dans mon projet c# j'exécute ma procédure stockée en faisant:
    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
     
     
    public static List<T> methodePs(int varint1, int varint2,string str) {
    ...
     
     String StoredProc = "PS1";
     SqlParameter[] Parameters = new SqlParameter[3];
     SqlDataReader reader = null;
     
                try
                {
                    Parameters[0] = new SqlParameter("@INT1", varint1);
                    Parameters[1] = new SqlParameter("@INT2", varint2);
                    Parameters[2] = new SqlParameter("@STR", str);               
     
                    reader = SqlHelper.ExecuteReader(ConnexionSrting(), StoredProc , Parameters);
     
               while(reader.read()){
     
                        ...
     
                       }
     
     
               }
     
    ...
    le problème en est que lorsque j'appelle cette méthode en lui passant les 3 paramètres j'obtiens bien les bonnes valeurs de retour mais ça ne marche pas pour un seul cas. En exécutant cette procédure stockée dans SQL server avec les mêmes paramètres(pour le cas où ça ne me retourne pas les bons valeurs) ça marche bien et j'ai les biens valeurs.

    J'ai vérifier bien les types des paramètres mais tout est correcte.


    Est ce que quelqu'un peut m'aider à trouver une solution ou une autre méthode?

  2. #2
    Membre expérimenté Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Points : 1 338
    Points
    1 338
    Par défaut
    Citation Envoyé par bigzouzou Voir le message
    le problème en est que lorsque j'appelle cette méthode en lui passant les 3 paramètres pour j'obtiens bien les bonnes valeurs de retour mais ça ne marche pas pour un seul cas. En exécutant cette procédure stockée dans SQL server avec les mêmes paramètres(pour le cas où ça ne me retourne pas les bons valeurs) ça marche bien et j'ai les biens valeurs.

    Salut

    je n'ai strictement rien compris. Qu'est ce qui ne fonctionne pas?

    Voila comment je procède en général :
    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
     
    public static Role getById(long plId)
            {
                Role _Role = null;
                SqlCommand sqlCommand = null;
     
                try
                {
                    const string sNameProc = Role.PROC_GET_BY_ID;
     
                    sqlCommand = createSQLCommand(sNameProc);
                    sqlCommand.CommandType = CommandType.StoredProcedure;
     
                    sqlCommand.Parameters.AddWithValue(Role.PROC_PARAM_ID, plId);
     
                    SqlDataAdapter DA = new SqlDataAdapter(sqlCommand);
                    }
            }

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par bigzouzou Voir le message
    le problème en est que lorsque j'appelle cette méthode en lui passant les 3 paramètres pour j'obtiens bien les bonnes valeurs de retour mais ça ne marche pas pour un seul cas. En exécutant cette procédure stockée dans SQL server avec les mêmes paramètres(pour le cas où ça ne me retourne pas les bons valeurs) ça marche bien et j'ai les biens valeurs.


    Gnnn ?????

    tu peux reformuler car c'est incompréhensible.

    (Et aussi poster le DDL de la PS).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    ok.

    En fais, je pense que j'ai un problème lors du passage des paramètres.
    En effectuant plusieurs tests sur le projet je me suis rendu compte que dans certains cas les valeurs retournées sont fausses, alors que ces mêmes tests effectués en exécutant la procédure stockée(en faisant un clic droit sur la PS puis exécuter) dans SQL Server j'obtiens les bonnes valeurs.


    Merci pour ta méthode, je vais l'essayé.

  5. #5
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Tu as mis un point d'arrêt à l'entrée dans ta fonction "methodePs" pour tracer en mode debug la valeur des paramètres.
    Il n'y a aucune raison pour qu'une procédure stockée renvoies des données différentes avec des paramètres identiques...
    Il y a donc forcément une erreur quelque part.

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    J'ai tracé avec log4net et aussi en mettant des points d'arrêt.
    Ça marche bien pour la plupart des cas, sauf 1 seul cas. Je trouve ça bizarre.

Discussions similaires

  1. [10g] Exécution procédure stockée depuis C#
    Par abradax dans le forum Oracle
    Réponses: 3
    Dernier message: 07/01/2013, 08h52
  2. Créer une procédure stockée depuis Delphi
    Par blonde dans le forum Bases de données
    Réponses: 10
    Dernier message: 10/03/2006, 11h26
  3. [SQL-Server] Exécution de procédures stockées
    Par sylvkin dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/09/2005, 12h00
  4. Appeler Procédure stockée depuis ACCESS
    Par Sunny dans le forum Access
    Réponses: 2
    Dernier message: 13/09/2005, 22h07
  5. DBLink et exécution de procédure stockée
    Par DBS dans le forum Oracle
    Réponses: 8
    Dernier message: 01/02/2005, 13h50

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