Max207
Messages postés19Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention17 octobre 2008
-
21 févr. 2008 à 15:44
cs_suzukMan
Messages postés58Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention13 septembre 2012
-
22 févr. 2008 à 11:28
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
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
cs_suzukMan
Messages postés58Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention13 septembre 20121 22 févr. 2008 à 11:28
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.