none
Cómo enlazar o concatenar varios datos en una sola celda de un DataGridView C# RRS feed

  • Pregunta

  • Hola, estoy realizando un trabajo en la creación de un sistema para un restaurante, utilizando Visual Studio 2012 con C#.

    Ahora, el problema me surge cuando quiero mostrar todas las reservas que hay para ese día, utilizando un
    DataGridView, ocurre que si en dicha reserva se van a utilizar 2 mesas, al momento de mostrar la información me crea 2 filas, en la fila 1 todos los datos pero en la columna "mesas" me muestra el numero de la primer mesa y en la segunda fila vuelve a mostrar todos los datos pero con el Nr° de la segunda mesa, así es como me muestra: 

    Lo que trato y no pude lograr es me muestre todos los datos una sola vez pero agrupando o concatenando la columna de         Nr° Mesa para dicha reserva, los datos se muestran por cada reserva. Asi es como necesito que me muestre los datos:

    Para aclarar todos estos datos se encuentran en la base de datos y utilizando un método desde la cada de Negocio para Listar estos datos, ademas utilizo el Entity Framework 6.2.

    Este es el Metodo (desde la capa de negocio) que uso para Mostrar las reservas:

    public List<MesaXReserva> FiltroDelDiaHoy(DateTime dato)//todas las reservas de hoy (reservadas y de baja)
           {           
               DBRestaurantesEntities DB = new DBRestaurantesEntities();          
               return DB.MesaXReserva.Include("Reserva").Include("Mesa").Where(item => item.Reserva.fecha == dato && item.Reserva.Estado == "Reservado").ToList();                    
           }

    y así es como Muestro los datos en el DataGridView (desde la cada de presentacion):

       public void MetodoFiltroDeHoy() //las reservas del dia de hoy y sin el nombre al iniciar la ventana
            {
                this.dgvLista.Rows.Clear();
                
                lblfecha.Text = DateTime.Today.ToShortDateString();//me da la fecha del dia de hoy dia/mes/año 5/9/2019
    
                List<MesaXReserva> lista = clsRes.FiltroDelDiaHoy(Convert.ToDateTime(lblfecha.Text));
                foreach (MesaXReserva item in lista)
                {
                    this.dgvLista.Rows.Add(item.Reserva.IDReserva, item.Reserva.fecha, item.Reserva.Hora, item.Reserva.CantidadPersonas, " ",
                         " ", item.Reserva.Cliente.Telefono, item.Mesa.Nro_Mesa, item.Reserva.Estado, "Modificar", "Borrar");
                }
            }

    Desde ya muchas gracias por la ayuda.

    viernes, 6 de septiembre de 2019 18:44

Respuestas

  • Hola Omar, a mi entender deberías atacar la carga en la base de datos, o sea ya en los registros deberías tener claro cuantas mesas son reservadas a un mismo clliente y desde la base de datos ya traer la información  ej: 3-4 para las mesas, y tener la opcón de modificar dichos registros en caso de cancelación o suma de mesas

    Saludos


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗

    sábado, 7 de septiembre de 2019 4:31