Problème variable Session avec procedure stockée

boubou77777 Messages postés 2 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 16 mai 2006 - 16 mai 2006 à 11:34
mdemo Messages postés 90 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 10 mai 2010 - 16 mai 2006 à 14:08
Bonjour,
j'ai un probleme pour attribuer une variable de Session à une variable qui sera inserée dans une table :



ALTER PROCEDURE dbo.diffuserDemande


@NUM_DEMANDE varchar(155)


,@INITIALE_DEMANDEUR varchar(10)= Session("loginCut")


,@NUM_RESPONSABLE varchar(255)


,@DATE_DEMANDE datetime


,@VALIDATION bit


,@NUM_PRISE_RESEAU varchar(255)


,@LIEU_IMPLANTATION varchar(255)


,@DATE_VALIDATION datetime


,@DATE_IMPLANTATION_DESIREE datetime


,@STATUT_DEMANDE varchar(255)


AS



insert INTO [DEMANDE]


([NUM_DEMANDE],[INITIALE_DEMANDEUR],[NUM_RESPONSABLE],[DATE_DEMANDE],[VALIDATION],[NUM_PRISE_RESEAU],[LIEU_IMPLANTATION],[DATE_VALIDATION],[DATE_IMPLANTATION_DESIREE],[STATUT_DEMANDE])


values


(@NUM_DEMANDE,@INITIALE_DEMANDEUR,@NUM_RESPONSABLE,@DATE_DEMANDE,@VALIDATION,@NUM_PRISE_RESEAU,@LIEU_IMPLANTATION,@DATE_VALIDATION,@DATE_IMPLANTATION_DESIREE,@STATUT_DEMANDE)





RETURN @@IDENTITY


Cela me retourne ce message d'erreur :
Incorrect syntax near "(".
Must declare the scalar variable "@NUM_RESPONSABLE".





Je suis débutant en ASP.NET donc mon erreur est peut etre toute bete. Merci par avance de votre aide.

3 réponses

mdemo Messages postés 90 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 10 mai 2010
16 mai 2006 à 12:06
Bonjour,
Je ne suis pas un grand spécialiste mais j'utilise les stored procedures et je suis surpris que tu puisses affecter une valeur dans les déclarations (= Session("loginCut"))
Je ne suis pas sûr du tout que celà puisse fonctionner puisque tu es côté serveur et sql server.
Le message d'erreur que tu as est typiquement ce que j'ai à chaque fois que j'oublie une virgule entre chaque déclaration. Donc comme tu l'as remarqué le
"@NUM_RESPONSABLE"n'est pas reconnu suite à ton affectation.
Pourquoi ne fais-tu pas passer cette variable de session de la même manière que tes autres variables, en enlevant ce =session("logincut") ?
0
boubou77777 Messages postés 2 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 16 mai 2006
16 mai 2006 à 13:32
Merci pour ta réponse, et je suis d'accord avec toi, mais si j'ai fait cette manip c'est parce que auparavant j'ai essayer ca :


"



InsertCommand="diffuserDemande"



InsertCommandType="StoredProcedure"



SelectCommand="SELECT * FROM [DEMANDE]">































Le but est d'inserer dans une table des valeurs rentrer par un utilisateur
à l'aide d'un formulaire, (jusqu'ici tout va bien), mais la valeur INITIALE_DEMANDEUR
ne doit pas etre rentrer par l'utilisateur car elle est deja connu.
Et donc avec le code ci-dessus cela me retourne une erreur lors de l'insertion qui m'indique
que la valeur INITIALE_DEMANDEUR est NULL,
mais je comprend pas pourquoi puisque avant d'inserer j'affiche
ma variable de Session("loginCut") et elle n'es pas null.
0
mdemo Messages postés 90 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 10 mai 2010
16 mai 2006 à 14:08
C'est la bonne solution. Lors de la configuration de ton SqlDataSource avec l'assistant tu peux définir la source de chaque paramètre si tu le souhaites.

Ce n'est pas la valeur par défaut qui va t'affecter une valeur, mais il faut que tu définisses la source de ton paramètre : cookie, control, form, profile,
querystring, ou SESSION. Et dans le champ suivant tu saisis LoginCut et le tour est joué !

Avec un objectdatasource ça donne :

<SelectParameters>





</SelectParameters>


Là tu vois je suis sur une sélection de control DdlLang qui passera dans ma stored procedure.

Je me rends compte en te notant cet exemple que je parle de Select et non de Update : en effet l'assistant (tout du moins pour l'objectdatasource) ne permet que de
sélectionner les variables du select. Si c'est pareil pour le SqlDataSource, il faut, pour les updates et autres requêtes, regarder dans la fenêtre de propriétés du sqldatasource
pour trouver le moyen de passer ces variables via un assistant. Au final ça donne le même code que ci-dessus, mais les assistants sont bien pratiques!


Let me know!
0
Rejoignez-nous