none
Como colocar datos de dos tablas en un solo grid? RRS feed

  • Pregunta

  • Q tal foristas, espero alguin sepa:

    Tengo una tabla Medico  (MedCodigo, MedNombre, MedTelefono, MedEspCod) y una tabla Especialidad (EspCodigo, EspNombre)
    Por lo que en cada médico tiene una especialidad y se debe relacionar   MedEspCod con EspCodigo.

    intento que en un datagrid me muestre:

    MedCodigo, MedNombre, EspNombre.


    es decir cada medico con el nombre de la especialidad asignada, y no mostrarme el codigo del mismo.

    Gracias de antemano 

    P.D. la consulta la hice: 1) agregué el datagrid, 2) data source  le asigne el del origen de datos, 3) me sale la columna MedEspCod osea el numero pero no el nombre al cual pertenece ese numero, LO SIENTO SOY NOVATO.
    Desarrollo en c# para smarth device 

    martes, 8 de noviembre de 2011 5:03

Respuestas

  • Si tienes las dos tablas como DataTable lo Podrias hacer de la Siguiente manera (OJO, asumo que espCodigo es de tipo int)

    var r = from m in Medico.AsEnumerable()
                        join e in Especialidad.AsEnumerable() on m.Field<int>("MedEspCod") equals e.Field<int>("EspCodigo")
                        select new
                        {
                            MedCodigo = m.Field<string>("MedCodigo"),
                            MedNombre = m.Field<string>("MedNombre"),
                            EspNombre = e.Field<string>("EspNombre")
                        };
    datagrid.DataSource = r;
    

    En el caso si lo quieres traer los datos pormedio de una consulta sql, te escribo el QUERY

    Select  A.MedCodigo
    	A.MedNombre
    	B.EspNombre
    From
    Medico A INNER JOIN
    Especialidad B ON B.EspCodigo = A.MedEspCod
    

    Claro esta, tienes que escribir el codigo para consumir este query

    Saludos,

    Giancarlo Rolando Huarcaya Martinez


    Giancarlo Facebook: giancarlo.huarcaya
    martes, 8 de noviembre de 2011 5:24

Todas las respuestas

  • Si tienes las dos tablas como DataTable lo Podrias hacer de la Siguiente manera (OJO, asumo que espCodigo es de tipo int)

    var r = from m in Medico.AsEnumerable()
                        join e in Especialidad.AsEnumerable() on m.Field<int>("MedEspCod") equals e.Field<int>("EspCodigo")
                        select new
                        {
                            MedCodigo = m.Field<string>("MedCodigo"),
                            MedNombre = m.Field<string>("MedNombre"),
                            EspNombre = e.Field<string>("EspNombre")
                        };
    datagrid.DataSource = r;
    

    En el caso si lo quieres traer los datos pormedio de una consulta sql, te escribo el QUERY

    Select  A.MedCodigo
    	A.MedNombre
    	B.EspNombre
    From
    Medico A INNER JOIN
    Especialidad B ON B.EspCodigo = A.MedEspCod
    

    Claro esta, tienes que escribir el codigo para consumir este query

    Saludos,

    Giancarlo Rolando Huarcaya Martinez


    Giancarlo Facebook: giancarlo.huarcaya
    martes, 8 de noviembre de 2011 5:24
  • Fabuloso gcAqp, te luciste, parece tan fácil una vez se vé el código, ahora lo implementaré, muchas gracias por tu tiempo compa
    martes, 8 de noviembre de 2011 15:48