ASP.NET - mostrar datos de 2 tablas distintas en un GridView (C# ASPX)

   
Vista:

mostrar datos de 2 tablas distintas en un GridView (C# ASPX)

Publicado por Alvaro alvarosalinast@yahoo.com (1 intervención) el 22/08/2013 21:24:38
Tengo un problemon y lo malo es que recien estoy aprendiendo a manejarme bien en el lenguaje.

Tengo 2 tablas en la base de datos una que se llama desembolsos y otra que se llama vencimientos, quiero que se junten en un GridView comparando datos como fechas.

me explico mejor:

mi tabla desembolsos tiene los siguientes campos:
DESEMBOLSOS
Prestamo_id (es el codigo del prestamo)
numero (es el numero del desembolso)
fecha_desembolso (es la fecha del desembolso)
monto_desembolso (es el monto del desembolso)
estado (indica si el desembolso es ejecutado o programado)

Mi tabla vencimientos tiene los siguientes campos:
VENCIMIENTOS
Prestamo_id (es el codigo del prestamo)
nro_vencimiento (es el numero del vencimiento)
nro_venc_des (tramo entre el vencimiento anterior y el actual)
fecha_vencimiento (es la fecha del vencimiento)
saldo a desembolsar (es el saldo que se tiene por desembolsar, disminuye con cada desembolso)
interes (es el interes de cada vencimiento perteneciente al prestamo)

la idea es generar algo como en la imagen:
https://www.dropbox.com/s/gtfg7xq2v5buctf/Dibujo.JPG

donde los desembolsos (color rojo) y los vencimientos (color blanco) se acomoden dependiendo de algo como su fecha.


ojala me puedan ayudar, un saludo

PD. yo lo realize en PHP y mysql, usando arrays, estoy viendo como usar arrays en aspx c# pero aun no lo entiendo del todo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

mostrar datos de 2 tablas distintas en un GridView (C# ASPX)

Publicado por Khristian (335 intervenciones) el 23/08/2013 20:53:35
Primero...
Creo que la tabla VENCIMIENTOS requiere un campo llamado VENCIMIENTO_id

Segundo...
Debo suponer que es SQL Server...?

Tercero...
Tienes algun tipo de relación creada entre ambas tablas..???

Cuarto...
La relacion es 1:1 o 1:n ???

-----------------------

Si la relacion es 1:1, solo debes relacionar la tablas y usar LEFT JOIN
Algo para que leas: http://sql.11sql.com/sql-left-join.htm


Si la relacion es 1:1, puedes usar la misma metodologia anterior, solo que se te repetiran las filas de la tabla DESEMBOLSOS por cada registro en la tabla VENCIMIENTOS cuando sean mas de 1.

Lo otro, es que uses gridview anidados.
Por ejemplo:
Creas el primer gridview y muestras solo los datos de la tabla DESEMBOLSOS.
Una vez que eso ya funcione, agregas una nueva columna del tipo template. (O conviertes todo el gridview en template)
En la ultima columna creada, entras en el diseño y agregas un control label.
Ese control label lo llamas "lbl_Prestamo_id" y lo asocias al campo Prestamo_id
Ejecutas la aplicacion y veras que se motrara en esa columna para cada fila su correspondiente Prestamo_id
Luego, vueves al diseño de esa columna y al control lbl_Prestamo_id lo dejas como oculto, para que no se siga viendo en la ejecucion.

Ahora, dentro de esa columna, en dieño, (recuerda que diseñas una vez y se repite para cada fila), agregas otro gridview.
Este nuevo gridview queda anidado dentro del otro.
A este gridview lo configuras para que muetre datos de la tabla VENCIMIENTOS, pero relacionados a la tabla DESEMBOLSOS usando Left Join.
En la tabla DESEMBOLSOS solo usa el campo Prestamo_id, pues es el unico necesario para relacionar los campos. Ademas, en el gridview anterior ya muestras los campos de dicha tabla.

En la relación DESEMBOLSOS left join VENCIMIENTOS, debe poner la condicio de filtro WHERE Prestamo_id=@idPrestamo, usando dicho parametro.

Luego, en el origen de datos de este segundo gridview asocias el parametro @idPrestamo al valor de lbl_Prestamo_id.
Esto hará que por cada fila de DESEMBOLSOS se muetren solo las filas asociadas de VENCIMIENTOS (en el segundo gridview).

Ademas, los DESEMBOLSOS que no tengan registros en VENCIMIENTOS apareceran tambien, pero en VENCIMIENTOS no mostraran nada.

Espero te sirva...
Saludos.


Estoy creando un nuevo blog, veré si en estos dias publico un ejemplo de esta metodologia... quiza engorrosa y manual, pero te evita usar controles de terceros y pagar licencias.
Ademas, si te das el tiempo de hacer arreglos a tu gridview, como diseño, justificaciones, ajuste de tamaño de columnas... etc. Puedes obtener un resultado muy profesional.

http://khristtian.blogspot.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar