OVH Cloud OVH Cloud

variables de sessions

7 réponses
Avatar
nicopilami
Salut à tous, c'est encore moi, ...
Apres avoir recherché pendant de longues heures, je n'ai rien trouvé, mais
vous pouvez m'aider, je le sais ...

voilà mon probleme : je souhaiterais stocker un objet panier_user
(appartenant à classe panier) en tant que variable de session, et le
recuperer d'une page sur l'autre.
j'ai essayé bcp de choses, mais rien n'y fait : soit il ne reconnait pas
d'instance de la classe, soit elle est nulle, ...

comment faire ?
pouvez vous me donner un exemple de stockage d'une instance de classe dans
la variable de session, et un autre de recuperation de l'objet .?

merci d'avance
Nico

7 réponses

Avatar
Patrice Manac'h
Bonjour,

en général, c'est du genre :
Session["mavar"] = instance

panier p = (panier)Session["mavar"]

Cdt,

Patrice Manac'h
MCS France

"nicopilami" <news.free.fr> a écrit dans le message de news:
43dd123b$0$17392$
Salut à tous, c'est encore moi, ...
Apres avoir recherché pendant de longues heures, je n'ai rien trouvé, mais
vous pouvez m'aider, je le sais ...

voilà mon probleme : je souhaiterais stocker un objet panier_user
(appartenant à classe panier) en tant que variable de session, et le
recuperer d'une page sur l'autre.
j'ai essayé bcp de choses, mais rien n'y fait : soit il ne reconnait pas
d'instance de la classe, soit elle est nulle, ...

comment faire ?
pouvez vous me donner un exemple de stockage d'une instance de classe dans
la variable de session, et un autre de recuperation de l'objet .?

merci d'avance
Nico




Avatar
nicopilami
"Patrice Manac'h" a écrit dans le message de
news:
Bonjour,

en général, c'est du genre :
Session["mavar"] = instance

panier p = (panier)Session["mavar"]

Cdt,

Patrice Manac'h
MCS France

"nicopilami" <news.free.fr> a écrit dans le message de news:
43dd123b$0$17392$
Salut à tous, c'est encore moi, ...
Apres avoir recherché pendant de longues heures, je n'ai rien trouvé,
mais vous pouvez m'aider, je le sais ...

voilà mon probleme : je souhaiterais stocker un objet panier_user
(appartenant à classe panier) en tant que variable de session, et le
recuperer d'une page sur l'autre.
j'ai essayé bcp de choses, mais rien n'y fait : soit il ne reconnait pas
d'instance de la classe, soit elle est nulle, ...

comment faire ?
pouvez vous me donner un exemple de stockage d'une instance de classe
dans la variable de session, et un autre de recuperation de l'objet .?

merci d'avance
Nico












euh... voilà mon code :

private void Page_Load(object sender, System.EventArgs e)
{

panier panier_user = new panier();
object tmp=(panier)Session["panier_client"];
if(tmp!=null) panier_user = tmp;


panier_user.ajouter(Request.QueryString.Get("ref_article"));

Session["panier_client"]=panier_user;




Response.Redirect("./catalogue.aspx");
}


voilà le message renvoyé :

Erreur de compilation
Description : Une erreur s'est produite lors de la compilation d'une
ressource requise pour répondre à cette demande. Veuillez consulter
ci-dessous les détails relatifs à l'erreur en question, puis modifier votre
code source de manière appropriée.

Message d'erreur du compilateur: CS0266: Impossible de convertir
implicitement le type 'object' en 'ASP.ajout_produit_session_aspx.panier'.
Une conversion explicite existe (un cast est-il manquant ?)

Erreur source:



Ligne 4 : panier panier_user = new panier();
Ligne 5 : object tmp=(panier)Session["panier_client"];
Ligne 6 : if(tmp!=null) panier_user = (object)tmp;
Ligne 7 :
Ligne 8 :


Fichier source:
d: Ligne:
6


vous avez une idee pour resoudre ca ?

bye
Nico
Avatar
Paul Bacelar
"nicopilami" <news.free.fr> wrote in message
news:43dd1e7a$0$17397$

"Patrice Manac'h" a écrit dans le message
de news:
Bonjour,

en général, c'est du genre :
Session["mavar"] = instance

panier p = (panier)Session["mavar"]

Cdt,

Patrice Manac'h
MCS France

"nicopilami" <news.free.fr> a écrit dans le message de news:
43dd123b$0$17392$
Salut à tous, c'est encore moi, ...
Apres avoir recherché pendant de longues heures, je n'ai rien trouvé,
mais vous pouvez m'aider, je le sais ...

voilà mon probleme : je souhaiterais stocker un objet panier_user
(appartenant à classe panier) en tant que variable de session, et le
recuperer d'une page sur l'autre.
j'ai essayé bcp de choses, mais rien n'y fait : soit il ne reconnait pas
d'instance de la classe, soit elle est nulle, ...

comment faire ?
pouvez vous me donner un exemple de stockage d'une instance de classe
dans la variable de session, et un autre de recuperation de l'objet .?

merci d'avance
Nico












euh... voilà mon code :

private void Page_Load(object sender, System.EventArgs e)
{

panier panier_user = new panier();
object tmp=(panier)Session["panier_client"];
if(tmp!=null) panier_user = tmp;


panier_user.ajouter(Request.QueryString.Get("ref_article"));

Session["panier_client"]=panier_user;




Response.Redirect("./catalogue.aspx");
}


voilà le message renvoyé :

Erreur de compilation
Description : Une erreur s'est produite lors de la compilation d'une
ressource requise pour répondre à cette demande. Veuillez consulter
ci-dessous les détails relatifs à l'erreur en question, puis modifier
votre code source de manière appropriée.

Message d'erreur du compilateur: CS0266: Impossible de convertir
implicitement le type 'object' en 'ASP.ajout_produit_session_aspx.panier'.
Une conversion explicite existe (un cast est-il manquant ?)

Erreur source:



Ligne 4 : panier panier_user = new panier();
Ligne 5 : object tmp=(panier)Session["panier_client"];
Ligne 6 : if(tmp!=null) panier_user = (object)tmp;
Ligne 7 :
Ligne 8 :


Fichier source:
d:
Ligne: 6


vous avez une idee pour resoudre ca ?

bye
Nico




panier panier_user = new panier();
object tmp=Session["panier_client"];
if(tmp!=null && (tmp is panier)) panier_user = (panier)tmp;


--
Paul Bacelar
MVP VC++
Avatar
nicopilami
mais pourquoi, quand j'ajoute je modifie une propriete du panier,que je
sauvegarde en faisant Session["panier_client"]=panier_user; et que je remet
le code du debut sur une autre page, ca n'a rien sauvegardé !!!??

bye

Nico
Avatar
Delf
nicopilami wrote:

comment faire ?
pouvez vous me donner un exemple de stockage d'une instance de classe dans
la variable de session, et un autre de recuperation de l'objet .?



CSharp

Session["MonPanier"] = panier_user;

...

Panier p = (Panier)Session["MonPanier"];

Session retourne un 'object', d'où le caste.

--
Delf
Avatar
Delf
nicopilami wrote:

> [...]

Essaie ça :

private void Page_Load(object sender, System.EventArgs e)
{
panier panier_user = new panier();

// MonPanier est une clé, tu mets ce que tu veux.
Session["MonPanier"] = panier_user;

panier tmp = (panier)Session["MonPanier"];

panier_user.ajouter(Request.QueryString.Get("ref_article"));

Session["MonPanier"] = panier_user;
}

Bon après, je comprends pas le code... Tu veux pas plutôt faire ceci ?

private void Page_Load(object sender, System.EventArgs e)
{
panier monPanier = (panier)Session["MonPanier"];

if (monPanier != null)
{
monPanier.ajouter(Request.QueryString["ref_article"]);

Session["MonPanier"] = monPanier;
}
}

--
Delf
Avatar
Franck
'lut,
public class MySessionManager{

public static MyClassType MySessionObject {
get {
if (HttpContext.Current.Session("MySessionParameterName") == null) {

HttpContext.Current.Session("MySessionParameterName") = new
MyClassType ();
}
return
(MyClassType)HttpContext.Current.Session("MySessionParameterName");
}
set {
HttpContext.Current.Session("MySessionParameterName") = Value;
}
}
}

Ensuite, depuis n'importe quelle page :
MySessionManager.MySessionObject