none
[SOLUCIONADO] Cómo relleno un DataGrid con tipo anónimo? RRS feed

  • Pregunta

  • Hola a tod@s.

    Estoy empezando con VB.NET y Linq to Entity y tengo una duda.

    Me he hecho un CRUD con un formulario y todo correcto, pero mi problema viene al empezar a separarlo en distintas clases.

    Si lo hago en el misma clase del formulario va bien porque lo añado directamente al grid

        Private contexto As New ventasEntities
    
           Sub selectAllProveedores()
            Dim datos = From p In contexto.proveedores
                Select p.nombre, p.cif, p.idproveedores
    
            Me.DataGridView1.DataSource = datos
        End Sub
    
    
        Private Sub ButtonSelect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            loadProveedores()
    
        End Sub

    Pero si lo paso a la clase no sé que tipo debo retornar para rellenarlo

    'Clase Proveedores
    
    Public Class ProveedoresClass
        Private contexto As New multiventasEntities
    
        Function SelectAllProveedores()
    
            Dim resultado = From p In contexto.proveedores
                Select p.nombre, p.cif, p.idproveedores
    
            Return resultado
        End Function
    End Class
    
    'Método en mi Form
    
        Private Sub ButtonSelect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            Dim prov As New ProveedoresClass
            'Dim allProv As New List(Of proveedores)
            'allProv = prov.SelectAllProveedores
            'Me.DataGridView1.DataSource = allProv
    
        End Sub

    He visto que lo que devuelve la función es un tipo anónimo pero no encuentro como llenar el grid.

    A ver si podeis guiarme un poco.

    Muchas Gracias y Saludos.




    • Editado CarmaZone sábado, 9 de junio de 2012 13:44
    domingo, 3 de junio de 2012 22:29

Todas las respuestas

  • estas seguro que no falla el devolver un metodo anonimo como resultado de uan funcion ?

    porque sino seri simplemente

     Private Sub ButtonSelect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            Dim prov As New ProveedoresClass
           
            Dim allProv = prov.SelectAllProveedores()
            Me.DataGridView1.DataSource = allProv
    
        End Sub

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    lunes, 4 de junio de 2012 2:05
  • Efectivamente Leandro.

    No sé por qué me estaba dando una excepción de conversión de tipos  en mi función, lo he hecho de nuevo y perfecto.

    Lo dejo por si a alguien nuevo le sirve

    ' Clase proveedores
    Public Class ProveedoresClass
        
        Private contexto As New ventasEntities
    
        Function SelectAllProveedores()
    
            Dim datos = From p In contexto.proveedores
            Where p.activo = 1
                Select p.nombre, p.cif, p.idproveedores
    
            Return datos
        End Function
    
    End Class
    
    ' Evento en formulario
    Private Sub ButtonSelect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
        ' Creamos una instancia de nuestra clase proveedores
        Dim prov As New ProveedoresClass
        'Guardamos el resultado devuelto y rellenamos el grid
        Dim allProv = prov.SelectAllProveedores
        Me.DataGridView1.DataSource = allProv
    
    End Sub
    Gracias y Salu2.


    • Editado CarmaZone lunes, 4 de junio de 2012 13:22
    lunes, 4 de junio de 2012 13:18