none
Agregar registros de consulta linq guardados en un DataTable a un DropDownList RRS feed

  • Pregunta

  • Buen dia, en el siguiente codigo lo que deseo obtener es un dropdown con datos de mi base de datos, la consulta es obtenida con linq, despues esa consulta se duarda dentro de un datatable, estoy trabajando con tres capas.

    Capa de acceso, retorna mi dt

     public static DataTable BuscarClienteDAL(int idUsuario)
            {
                
                bool isExistente = false;
                DataTable dt = new DataTable();
    
                isExistente = Database.Exists(dbContext.Database.Connection);
    
                if (isExistente)
                {
                    var query = (from c in dbContext.Clients
                                 where c.IdUser == idUsuario
                                     select new
                                     {
                                         c.Id,
                                         c.Name,
                                         c.Apellido
                                     }).ToList();
                    dt.Columns.Add("Clientes");
                    foreach (var item in query)
                    {
                        //crea un nuevo row
                        DataRow row = dt.NewRow();
                        
                        //Asignar el dato a cada columna  de la row
                        row["Clientes"] = item.Id + item.Name + item.Apellido;
                        dt.Rows.Add(row);
                    }
    
                }
                
                return dt;
            }

    Capa logica

    public static DataTable BuscarClienteBLL(int idUsuario)
            {
                
                DataTable dt = new DataTable();
                dt = DataAccessLayer.ClientDAL.BuscarClienteDAL(idUsuario);
                return dt;
    
    
            }

    Y esto hago en mi PageLoad de mi WebForm

    protected void Page_Load(object sender, EventArgs e)
            {
                //Carga de informacion de mi dropdown
                int IdUsuario = Convert.ToInt32(Session["Usuario"]);
                DropClient.Load += dropdownClientes_ServerClick;
    
                DropClient.DataValueField = "Id";
                DropClient.DataTextField = "Name" + "Apellido";
                DropClient.DataSource = ClientBLL.BuscarClienteBLL(IdUsuario);
                DropClient.DataBind();
    
            }

    El error marcado es que en DataBind no existe una propiedad llamada "Name" y "Apellido", anteriormente lo estaba manejando con una list, pero como queria poner sobre mi DropDown las entidades de Name y apellido juntos mi profesor me dijo que lo cambiara a un datatable.

    Estoy usando una BD de Mysql


    miércoles, 4 de diciembre de 2019 18:31