none
SESSION TRAZER O CODIGO RRS feed

  • Pergunta

  • Ola pessoal , estou trazendo o nome como seção , não estou sabendo trazer o codigo , 

    tentei converter pra String ou Tot16 , mais antes ou depois da erro , acredito , que existe outras formas

    como somente tenho campos  login e senha ..... entao o erro está aqui                    

    Session["CODIGO"] = txtLOGIN.Text.Trim(); 

    preciso que 

    Session["CODIGO"] = "CODIGODATABELA"; 

    Segue o trecho e , pós validar 

    conn.Open();
                    MySqlCommand cmd = new MySqlCommand("select * FROM ADMINISTRADORES where LOGIN=@LOGIN and SENHA=@SENHA", conn);
                    cmd.Parameters.AddWithValue("@LOGIN", txtLOGIN.Text.Trim());
                    cmd.Parameters.AddWithValue("@SENHA", txtSENHA.Text.Trim());
                    MySqlDataAdapter adp2 = new MySqlDataAdapter(cmd);
                    DataTable dt = new DataTable();
                    adp2.Fill(dt);

                    int i = cmd.ExecuteNonQuery();

                    conn.Close();
                    if (dt.Rows.Count > 0)
                    {

                        Session["CODIGO"] = txtLOGIN.Text.Trim(); 
                        Response.Redirect("menuadministrador.aspx");
                        Session.RemoveAll();
                    }
                    else
                    {
                        Label1.Text = "O Login ou a Senha estão Incorretos";
                        Label1.ForeColor = System.Drawing.Color.Red;
                    }

    Verifico com esse em outra tela 

            protected void Page_Load(object sender, EventArgs e)
            {
                Label1.Text = Session["CODIGO"].ToString(); 
            }

    ?Obrigado , aos amigos que se propuserem a solucionar

    terça-feira, 28 de julho de 2015 03:50

Respostas

  • Olá Marcelo, o problema é que vc está tentando carregar o código de uma txtLogin, quando deveria carregar do DataTable.

    Veja:

    conn.Open();
                    MySqlCommand cmd = new MySqlCommand("select * FROM ADMINISTRADORES where LOGIN=@LOGIN and SENHA=@SENHA", conn);
                    cmd.Parameters.AddWithValue("@LOGIN", txtLOGIN.Text.Trim());
                    cmd.Parameters.AddWithValue("@SENHA", txtSENHA.Text.Trim());
                    MySqlDataAdapter adp2 = new MySqlDataAdapter(cmd);
                    DataTable dt = new DataTable();
                    adp2.Fill(dt);
    
                    int i = cmd.ExecuteNonQuery();
    
                    conn.Close();
                    if (dt.Rows.Count > 0)
                    {
    
                        Session["CODIGO"] = dt.Rows[0]["CODIGO"]; 
                        Response.Redirect("menuadministrador.aspx");
                        Session.RemoveAll();
                    }
                    else
                    {
                        Label1.Text = "O Login ou a Senha estão Incorretos";
                        Label1.ForeColor = System.Drawing.Color.Red;
                    } 

    Agora no seu Page_Load, recomendo que antes de utilizar variáveis de Session, vc verifique se não estão Null, pois pode ser que o usuário já perdeu sessão por inatividade.

            protected void Page_Load(object sender, EventArgs e)
            {
                if (Session["CODIGO"] != null) {
                  Label1.Text = Session["CODIGO"].ToString(); 
                }
            }

    Recomendo que se você for utilizar o Session["CODIGO"] para gravar no banco de dados, faça a conversão:

    Convert.ToInt32 ok ?

    É isso ai.

    Bons Códigos !


    Att, Lucio Rogerio


    Espero ter ajudado, se ajudei, por favor "Vote como Útil", e se resolvi seu problema, clique em "Propor como Resposta".

    terça-feira, 28 de julho de 2015 09:10