SqlDataSource & procédure stockée: retour d'un paramètre

Résolu
Max207 Messages postés 19 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 17 octobre 2008 - 21 févr. 2008 à 13:24
Max207 Messages postés 19 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 17 octobre 2008 - 22 févr. 2008 à 16:26
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

4 réponses

mimosa803 Messages postés 345 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 24 avril 2010
21 févr. 2008 à 16:34
Bonjour, personnellement j'utilise le code c# au lieu du datasource, voila un bout de code qui manipule les procédures stockées et j'espère que ca va vous aidez :


 



strConnection = System.Configuration.




ConfigurationManager
.ConnectionStrings[

"NSConnectionString"
].ConnectionString; //nom de la chaine de connexioncn =


new



SqlConnection
(strConnection);


try

{


cn.Open();







string
nom_proc =

"Ajouter_PROFILE_ACCESS_RIGHT"
; // nom de la procédure stockée


SqlCommand
cm =

new



SqlCommand
(nom_proc, cn); //objet commandcm.CommandType =


CommandType
.StoredProcedure;


SqlParameter
parma1 = cm.Parameters.Add(

"@screen"
,

SqlDbType
.VarChar, 50); // déclaration des paramètres


SqlParameter
parma2 = cm.Parameters.Add(

"@profile_id"
,

SqlDbType
.Int);

parma1.Value = Profile_Screen_DropDownList.Text;

parma2.Value =

Convert.ToInt64(Profile_Shortname_DropDownList.SelectedValue);

cm.ExecuteNonQuery();// exécuter la procédure dans le cas où elle ne retourne rien

}

catch (
Exception E){

Profile_Label.Text = E.Message.ToString();

}

finally{

cn.Close();

cn.Dispose();

}
3
Rejoignez-nous