entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

datos en variable session

Buenas tardes, quisiera saber cómo puedo hacer para pasar varios valores en una variable session en c#.
Los datos que quiero guardar en la variable, estan dentro de un listView.. Con el codigo que tengo ahora, sólo puedo pasar un valor.. Acá va:

Agregar al carrito:

 protected void addCarrito_Command(object sender, CommandEventArgs e)
    {
        string codArt = e.CommandArgument.ToString();
        ArrayList productos;

        productos = new ArrayList();
        productos.Add(codArt);
        Session["s_producto"] = productos;

        productos = (ArrayList)Session["s_producto"];
        foreach (string item in productos)
        {
            llenarListView(item);
        }
    }

Llenar el listView del carrito (div flotante, tipo popup):

    public void llenarListView(string nombre)
    {
        Conexion datos = new Conexion();
        SqlConnection cn = datos.ObtenerConexion();
        string consulta = "SELECT Articulos.Nombre_A, Articulos.PrecioUnitario_A FROM Articulos WHERE Articulos.Nombre_A = '" + nombre + "' ";
        datos.ObtenerAdaptador(consulta);
        SqlDataAdapter com = new SqlDataAdapter(consulta, cn);
        ds = new DataSet();
        com.Fill(ds, "Articulos");
        miCarrito.DataSource = ds.Tables[0];
        miCarrito.DataBind();
        cn.Close();
    }

Muchas gracias !

magarzon comentado hace 5 días

Y qué es lo que no te funciona o el error que te da? Porque en principio el código está bien (salvo el tema de que abras una conexión para cada select, pero bueno)

ShamiiCooper comentado hace 5 días

Quiero agregar más de un valor a la sesion, como es un carrito de compras, se pueden agregar varios articulos. Y como lo hice ahora, me agrega uno, si clickeo en agregar otro articulo al carrito, me reemplaza al anterior.

1 Respuesta

1voto

magarzon Puntos15840

Supongo que llamas a addCarrito_command cada vez que haces click, por lo que para añadir al carro sería así:

 protected void addCarrito_Command(object sender, CommandEventArgs e)
    {
        //Obtenemos el código de producto añadido
        string codArt = e.CommandArgument.ToString();

        //Obtenemos el carrito de la compra de sesión
        ArrayList productos = (ArrayList) Session["s_producto"];

        //Si es null es que tenemos el carrito vacío (no está guardado en sesión), por tanto creamos el array nuevo
        if (productos == null) {
           productos = new ArrayList();
        }

        //Añadimos el nuevo producto a la lista
        productos.Add(codArt);

        //Guardamos el array actualizado en sesión
        Session["s_producto"] = productos;

        //Llamamos a este código que supongo que pinta cada artículo
        foreach (string item in productos)
        {
            llenarListView(item);
        }
    }

Por favor, accede o regístrate para responder a esta pregunta.

¿Conoces alguien que puede responder?
¡Comparte esta pregunta!


Actividad Reciente

  • azuriguel ganó una medalla hace 28 minutos

    Humano Verificado - Verificó su email
  • rferreras ganó una medalla hace 46 minutos

    Club de los 100 - Received total of 100 points
  • rferreras ganó una medalla hace 47 minutos

    Humano Verificado - Verificó su email
  • asantosz ganó una medalla hace 1 hora

    Club de los 100 - Received total of 100 points
  • fmaciask ganó una medalla hace 5 horas

    Humano Verificado - Verificó su email
  • ShamiiCooper preguntó hace 12 horas

    Instancia de UpdatePanel
  • ShamiiCooper ganó una medalla hace 12 horas

    Regular - Primera visita hace más de 90 días
  • test123 ganó una medalla hace 17 horas

    Club de los 100 - Received total of 100 points
  • tetete ganó una medalla hace 17 horas

    Club de los 100 - Received total of 100 points
  • Testttt ganó una medalla hace 17 horas

    Club de los 100 - Received total of 100 points

¿Eres Usuario Apple?

...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta