none
Obtener valores de lista generica y poner en data grid view RRS feed

  • Pregunta

  • Hola , necesito rellenar un grid view con los datos de las personas que tienen que pagar en el dia actual , estoy tratando de hacerlo con entity framework en model first , y usando linq para hacer las consultas.

    Cuando hago la comparacion de DateTimes con un Where y lo paso a .ToList() , necesito que esa lista quede plasmada en el grid view , pero con datos especificos que yo necesito.

    Ejemplo , aqui lo hice para una sola persona:

     
    private void AgregarPersonaGrilla()        {            using (var context = new ModeloMuebleriaContainer())            {                var persona = context.Cuotas.FirstOrDefault(x =>                    DbFunctions.TruncateTime(x.FechaCobro) == DbFunctions.TruncateTime(DateTime.Now));                if (persona != null)                {                    _cobrosDiariosGRILLA.Items.Add(new Item()                    {                        Persona = persona.Venta.Persona.Nombre,                        Contacto =  persona.Venta.Persona.Celular,                        Direccion = persona.Venta.Persona.Direccion.Calle + " " + persona.Venta.Persona.Direccion.Numero,                        Fecha_de_Cuota = persona.FechaCobro.ToShortDateString(),                        Monto = persona.MontoPagar.ToString(),                        Firma = "       ",                    });                }                            }        }

    Y al ser un FirstOrDefault puedeo asignarlo tranquilamente a un New Item(). Pero al hacerlo con Where o All no puedo acceder a las propiedades.

    La base de dato tiene las siguientes relaciones:

    Persona puede tener varias Ventas  -> puede tener varias Cuotas. El datetime esta almacenado en las cuotas.

    Si alguien me puede orienta un poco me salva la vida. Muchas gracias!

    lunes, 2 de septiembre de 2019 21:21

Todas las respuestas

  • Tu pregunta no es muy clara pero si lo que quieres es poner una lista en datagridview

    El codigo es muy simple

    tuDatagridview.Datasource = tuLista

    lunes, 2 de septiembre de 2019 22:54
  • No me dejaron poner imagenes por eso no pude aclarar bien. Disculpen.

    Lo que pasa es que quiero poner solamente atributos puntuales , no todos los atributos de la coleccion

    martes, 3 de septiembre de 2019 0:33
  • Hola , necesito rellenar un grid view con los datos de las personas que tienen que pagar en el dia actual , estoy tratando de hacerlo con entity framework en model first , y usando linq para hacer las consultas.

    Cuando hago la comparacion de DateTimes con un Where y lo paso a .ToList() , necesito que esa lista quede plasmada en el grid view , pero con datos especificos que yo necesito.

    Ejemplo , aqui lo hice para una sola persona:

     
    private void AgregarPersonaGrilla()        {            using (var context = new ModeloMuebleriaContainer())            {                var persona = context.Cuotas.FirstOrDefault(x =>                    DbFunctions.TruncateTime(x.FechaCobro) == DbFunctions.TruncateTime(DateTime.Now));                if (persona != null)                {                    _cobrosDiariosGRILLA.Items.Add(new Item()                    {                        Persona = persona.Venta.Persona.Nombre,                        Contacto =  persona.Venta.Persona.Celular,                        Direccion = persona.Venta.Persona.Direccion.Calle + " " + persona.Venta.Persona.Direccion.Numero,                        Fecha_de_Cuota = persona.FechaCobro.ToShortDateString(),                        Monto = persona.MontoPagar.ToString(),                        Firma = "       ",                    });                }                            }        }

    Y al ser un FirstOrDefault puedeo asignarlo tranquilamente a un New Item(). Pero al hacerlo con Where o All no puedo acceder a las propiedades.

    La base de dato tiene las siguientes relaciones:

    Persona puede tener varias Ventas  -> puede tener varias Cuotas. El datetime esta almacenado en las cuotas.

    Si alguien me puede orienta un poco me salva la vida. Muchas gracias!

    Ya pude hacerlo , era simplemente hacer un Select y recorrer los indicies en un foreach. Lamentablemente estaba bloqueado y la falta de experiencia y practica me mata.

    martes, 3 de septiembre de 2019 1:42
  • hay muchas formas de poner solo propiedades puntuales

    pero viendo lo que explicas seria bueno que usaras consultas Linq no Lambda

    por que esto??

    Por que en el select tu puedes seleccionar solo los campos que retornara la consulta

    class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Hello World!");
                List<Ejemplo> ejemplos = new List<Ejemplo>();
    
                var prueba = from item in ejemplos
                             select new { item.Id, item.Name };
            }
        }
    
        public class Ejemplo
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public string LastName { get; set; }
        }

    como puedes ver el siguiente ejemplo tiene una lista de la clase ejemplo

    y pasa al var prueba el resultado de una consulta linq pero solo pasa las propiedades que se necesitan el id y name. Tu harias lo mismo pero solo de pasar a var prueba seria tuDatagridview.Datasource =  a la consulta linq

    martes, 3 de septiembre de 2019 22:37