SqlDataSource et procédure stockée, retour d'une valeur [Résolu]

Signaler
Messages postés
19
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
17 octobre 2008
-
Messages postés
58
Date d'inscription
mercredi 25 avril 2007
Statut
Membre
Dernière intervention
13 septembre 2012
-
Bonjour à tous!

Dans le cadre de
mon stage en ASP.NET & C#, je dois utiliser des procédures dans la
base de donnée pour mon application. Je tente de faire quelque chose
mais ça ne fonctionne pas (d'où la raison de mon message ... lol).

J'utilise
une SqlDataSource (c'est vraiment pratique ce truc!) et je l'ai
associée à une procédure stockée de ma base de donnée. Cette procédure
retourne toujours une seule valeur (de type int) par exemple: 0 (qui
veut dire OK), 1 (Pas OK), etc.

Ce que j'aimerai faire c'est lors d'un clic sur un bouton:
- excécuter cette procédure
- obtenir la valeur de retour de cette procédure
- mettre cette valeur dans une variable ou l'afficher dans un Label.

Voici un exemple de code simple (ma procédure n'a pas de paramètre à envoyer):
ASPX




    <form id="form1" runat="server">
   

       

       

        &nbsp;&nbsp;

       

        &nbsp;

       
"
            SelectCommand="ma_procedure1" SelectCommandType="StoredProcedure">
    </form>



ASPX.CS


    protected void Essai2(object sender, EventArgs e)
    {

        ???????? Quoi mettre ????????
















    }










Je
ne sais pas quoi mettre dans l'évènement pour récupérer la valeur de ma
procédure stockée à partir de cette datasource. Pourriez-vous me mettre
sur le droit chemin

Un autre question:

Je
sais qu'il y a moyen de réaliser ce que je veux faire directement en
code C# mais ici j'ai choisi la facilité en usant des SqlDataSource. Je
me demandais au niveau théorique quel est le meilleur moyen à utiliser?
Est-ce que utiliser des SqlDataSources pour les procédures n'est pas un
processus trop lourd?

Merci d'avance de bien vouloir m'éclairer. Bonne journée

2 réponses

Messages postés
58
Date d'inscription
mercredi 25 avril 2007
Statut
Membre
Dernière intervention
13 septembre 2012
1
Bonjour,

Bon j'ai ecrit mais rien a marcher je recommence.

Pour faire propre tu met ta chaine de connexion dans le web.config. ensuite tu crée une classe spécifique qui récupere cette chaine . Tu crée des méthodes qui execute des requet ou procedure stockée. (Pas mal de doc sur le web la dessus)

Pour le resulat de la procedure stockée deux solutions:   
1er  Dans ta procedure tu met un parametre de sortie
      @test int output
  Dans ton code 
      monParametre = newSqlParameter("@test", SqlDbType.Int);


      monParametre.Direction = ParameterDirection.Output;
      Tu ajoute a ta commande Sql :     SqlCmd.Parameters.Add(monParametre);


      Tu recupere comme sa int test = (int)monParametre.Value;

2eme Dans ton code
   int test = Convert.ToInt16(SqlCmd.ExecuteScalar());
   Execute scalar renvoi un champs type Objet.

   Voila !!
Cordialement
Messages postés
58
Date d'inscription
mercredi 25 avril 2007
Statut
Membre
Dernière intervention
13 septembre 2012
1
Bonjour,

Cordialement