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 !

0voto

magarzon comentado

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)

0voto

ShamiiCooper comentado

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 Puntos30650

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.

Otras Preguntas y Respuestas


...

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

Conecta