Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luiz Lahr

Problemas com Sessions....

Recommended Posts

Pessoal,

mais uma vez venho solicitar socorro de vcs...

como disse antes naum tenho mto conhecimento de aspx

 

estou com o seguinte problema....

a maior parte do meu site eh desenvolvida em .asp

mas estou montando uma parte em .aspx devido ao uso de alguns componentes de tratamento de imagens....

 

minha pagina de login e as que geram as sessions com as informacoes do usuario sao .asp

e a pagina de upload eh .aspx

 

quando chamo a session com o codigo do usuario na pagina .aspx nada aparece....

isso eh algum problema de comunicacao entre elas ou eu que estou cometenco erros mesmo?

 

obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Luiz Lahr, primeiro é preciso ver como você ta tentando pegar essas sessions.

 

Eu tb apanhei um pouco estes dias porque to começando tambem nesta plataforma e optei pelo C# e o que descobri até agora se te ajudar é o seguinte:

 

Na página *.cs (correspondente ao *.aspx) eu simplesmente uso Session["nomedaSession"] para criar ou acessar uma session. - Observe que é "Session" e não session ou SESSION porque o C# é caso sensitivo e em lugar do "()" do ASP é "[]".

 

Agora se eu preciso acessar essa session numa outra página eu tenho que referenciar à classe e neste caso eu descobri que tenho que fazer referencia desta da HttpContext.Current.Session["strConn"].ToString()

 

Ex.: na minha masterpage.aspx so tem controles mas no masterpage.aspx.cs eu preciso criar algumas sessions então eu fiz:

 

// esta linha cria a var session strConn com o caminho para a base de dados mdb.

Session["strConn"]="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/Sites/Ridgid/Dados/";

 

// conforme o dropdown uam database deve ser selecionada.

// o nome da tabela esta no value do dropdown

// a session idxCombo é pra selecionar o option quando executar AutoPostBack ( pois ele voltaria para o indice 0

DropDownList tabela = (DropDownList)form1.FindControl("drpPeriodo");

 

if (tabela.SelectedIndex >=0)

{

Session["mdbTable"] = tabela.Text;

Session["idxCombo"] = tabela.SelectedIndex;

}

else if (Session["mdbTable"] == null)

{

Session["mdbTable"] = "GE_Atual.mdb";

Session["idxCombo"] = 0;

}

 

// uma vez recuperado o nome da database a ser utilizada, deve ser completado a connectionstring

Session["strConn"] += Session["mdbTable"].ToString() + ";";

 

// observe aqui que a var do lado esquerdo não é utilizado o .Text ou .ToString(). se tentar colocar dá erro de compilação.

 

// agora usando a session na conexão:

OleDbConnection mdbConn = new OleDbConnection(Session["strConn"].ToString());

// neste caso é obrigatório o .ToString() porque o Session é um objeto.

 

************* Observe que aqui eu to na pagina de criação da Session então eu me refiro à ela diretamente pelo Session["nomedasession"].ToString()

 

Agora vou usar a mesma session um class la em App_code.

 

Se eu tentar usar o Session["nomedasession"].ToString() - retorna uma mensagem de erro indicando que Session não faz parte do contexto ou algo similar a isso. então fuçando na net eu descobri que neste caso eu preciso acessar pela class ou seja:

 

static dsDistribuidores()

{

_connectionString = HttpContext.Current.Session["strConn"].ToString();

}

 

// e agora na conexão:

 

// dsDistribuidoresEstados

// revisao 1.0 - 09/01/2008

[system.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjec

tMethodType.Select, true)]

public static List<dsDistribuidores> DistribuidoresEstados(string uf)

{

string sql = "SELECT *, vendas as total FROM distr_estados WHERE (uf='" + uf + "')";

//string sql = "SELECT *, vendas as total FROM distr_estados";

OleDbConnection con = new OleDbConnection(_connectionString);

OleDbCommand cmd = new OleDbCommand(sql, con);

 

Espero que te ajude....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o Lab Design comentou se estiver usando C#, para usar Sessions você utiliza o []. Agora caso seja o VB é da mesma forma que no Asp utilizando (). Em relação ao HttpContext.Current. eu nunca precisei utilizar para receber o valor de uma Session, simplesmente o .ToString() funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha so quintelab:

 

a Session["strConn"] foi criada no masterpage.aspx.cs certo.

 

eu to tentando acessar o class dsDistribuidores.cs na pasta App_code:

 

Entao mudei a string para:

_connectionString = Session["strConn"].ToString();

 

e voalá:

 

Erro de Compilação

Descrição: Erro ao compilar um recurso necessário para atender esta solicitação. Examine os detalhes específicos do erro e modifique o código fonte apropriadamente.

 

Mensagem de Erro do Compilador: CS0103: Nome 'Session' não existe no contexto atual

 

Erro de Origem:

 

 

 

Linha 28: static dsDistribuidores()

Linha 29: {

Linha 30: _connectionString = Session["strConn"].ToString();

Linha 31: }

Linha 32:

 

 

Arquivo de Origem: c:\VSProjetos\GE\App_code\dsDistribuidores.cs Linha: 30

 

 

volto a linha como anteriormente:

Tá lá o gridview corretamente na tela....

 

Como eu disse, eu to aprendendo também e me deparo com situações inusitadas que na plataforma php eu tiro de letra mas aqui também tenho muitas dúvidas e apanho um bocado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha so quintelab:

 

a Session["strConn"] foi criada no masterpage.aspx.cs certo.

 

eu to tentando acessar o class dsDistribuidores.cs na pasta App_code:

 

Entao mudei a string para:

_connectionString = Session["strConn"].ToString();

 

e voalá:

 

Erro de Compilação

Descrição: Erro ao compilar um recurso necessário para atender esta solicitação. Examine os detalhes específicos do erro e modifique o código fonte apropriadamente.

 

Mensagem de Erro do Compilador: CS0103: Nome 'Session' não existe no contexto atual

 

Erro de Origem:

 

 

 

Linha 28: static dsDistribuidores()

Linha 29: {

Linha 30: _connectionString = Session["strConn"].ToString();

Linha 31: }

Linha 32:

 

 

Arquivo de Origem: c:\VSProjetos\GE\App_code\dsDistribuidores.cs Linha: 30

 

 

volto a linha como anteriormente:

Tá lá o gridview corretamente na tela....

 

Como eu disse, eu to aprendendo também e me deparo com situações inusitadas que na plataforma php eu tiro de letra mas aqui também tenho muitas dúvidas e apanho um bocado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lab Design não trabalho com Master Page, não tive como testar ainda, e como você citou que dúvidas são constantes e comigo também é assim, dei uma pesquisada, da uma olhada neste artigo que explana em relação a necessidade de utilizar a classe HttpContext.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.