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 :

[linq] Valeur de retour et parametre out


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 73
    Par défaut [linq] Valeur de retour et parametre out
    sur un projet ASP.NET sur VS2012 avec framwork 4.5

    Bonjour à tous,

    je voudrais utiliser une procédure stockée via linq dont voici les parametres:

    CreerClient(string nom, string prenom, int numRue, string rue, string cp, string ville, string pays, string email, string mdp, string message out)

    Cette procédure possède aussi un code retour (int) renvoyée par le "return" de la procédure stockée.

    il me met une erreur au niveau du paramètre message, il attends un paramètre de type ObjectParameter seulement je ne vois pas comment on peut le créer.
    Je suppose pour pour le code retour, il faut utiliser la même méthode.
    mes recherches sur le net à ce sujet sont vaines ... quelqu un aurai un tuto ou une explication à mon problème?

    merci d'avance

    Je viens de résoudre le probleme pour le parametre "message", mais il me reste ce fameux code retour pour lequel je ne trouve pas la la syntaxe adéquate ...

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Par défaut
    Une SP devrait renvoyer soit un resultset ou un result code, pas les deux.

    Si tu as besoin de error handling, raise des exceptions et attrape-les dans le code.

    Le return ne devrait être employé que lorsque la SP ne renvoit pas de resultset, comme dans le cas d'un insert par exemple.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 73
    Par défaut
    Merci pour ta réponse,

    j'ai cherché de mon coté et j'ai réussi à paramétrer le retour de ma fonction ainsi que mon paramètre out.

    Maintenant j' ai une erreur "valeur nulle"

    Voici mon code:

    Appel de ma methode statique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int retour;
    ObjectParameter message = new ObjectParameter("message", typeof(String));
    retour = Client.InscrireClient(tbNom.Text, tbPrenom.Text, Int16.Parse(tbNumRue.Text), tbRue.Text, tbCp.Text, tbVille.Text, tbPays.Text, tbMail.Text, tbMdp.Text, out message);
    methode statique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        public static int InscrireClient(string nom, string prenom, Int16 nRue, string rue, string cp, string ville, string pays, string mail, string mdp, out ObjectParameter message)
        {
            int codeRet;
            message = null;
            ALM_SEBOEntities db = new ALM_SEBOEntities();
            codeRet = db.CreerClient(nom, prenom, nRue, rue, cp, ville, pays, mail, mdp, message);
     
            return codeRet;
        }
    erreur lors de la validation du formulaire :
    Erreur du serveur dans l'application '/'.
    Le paramètre au niveau de l'index 9 dans le tableau de paramètres est Null.

    Trace de la pile:


    [InvalidOperationException: Le paramètre au niveau de l'index 9 dans le tableau de paramètres est Null.]
    System.Data.Objects.ObjectContext.CreateEntityCommandForFunctionImport(String functionName, EdmFunction& functionImport, ObjectParameter[] parameters) +2852163
    System.Data.Objects.ObjectContext.ExecuteFunction(String functionName, ObjectParameter[] parameters) +109
    ALM_SEBOEntities.CreerClient(String nom, String prenom, Nullable`1 numRue, String rue, String cp, String ville, String pays, String email, String motPasse, ObjectParameter message) +909
    Client.InscrireClient(String nom, String prenom, Int16 nRue, String rue, String cp, String ville, String pays, String mail, String mdp, ObjectParameter& message) +93
    Identification.validInscription_Click(Object sender, EventArgs e) +242
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9553178
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103
    System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
    System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724
    je ne comprends pas trop l' erreur car la procédure stockée a bien une variable message en retour, qui peut être nulle

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 73
    Par défaut
    Bon décidément j'ai écris ce post trop rapidement.

    Je viens de trouver la solution à mon probleme

    en faisant

    Appel de ma methode statique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int retour;
    ObjectParameter message;
    retour = Client.InscrireClient(tbNom.Text, tbPrenom.Text, Int16.Parse(tbNumRue.Text), tbRue.Text, tbCp.Text, tbVille.Text, tbPays.Text, tbMail.Text, tbMdp.Text, out message);
    methode statique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        public static int InscrireClient(string nom, string prenom, Int16 nRue, string rue, string cp, string ville, string pays, string mail, string mdp, out ObjectParameter message)
        {
            int codeRet;
           message = new ObjectParameter("message", typeof(String));
            ALM_SEBOEntities db = new ALM_SEBOEntities();
            codeRet = db.CreerClient(nom, prenom, nRue, rue, cp, ville, pays, mail, mdp, message);
     
            return codeRet;
        }

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/04/2013, 20h27
  2. Réponses: 10
    Dernier message: 13/04/2009, 13h02
  3. Réponses: 8
    Dernier message: 14/12/2007, 17h12
  4. Valeur de retour d'une procédure externe
    Par elekis dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 16/04/2004, 16h45
  5. Pourquoi une seule valeur de retour pour les fonctions ?
    Par Bruno75 dans le forum Langages de programmation
    Réponses: 33
    Dernier message: 18/01/2004, 13h58

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