Foros del Web » Programación para mayores de 30 ;) » .NET »

Mi páginado casero, opiniones

Estas en el tema de Mi páginado casero, opiniones en el foro de .NET en Foros del Web. Buenos dias, trabajo con el visual web developer y tengo entendido que el paginado de los gridviews que viene por defecto es bastante poco eficiente ...
  #1 (permalink)  
Antiguo 15/04/2009, 17:14
 
Fecha de Ingreso: diciembre-2008
Mensajes: 18
Antigüedad: 15 años, 4 meses
Puntos: 0
Mi páginado casero, opiniones

Buenos dias, trabajo con el visual web developer y tengo entendido que el paginado de los gridviews que viene por defecto es bastante poco eficiente para grandes cantidades de registros, ya que si tienes 10000 registros y en cada pagina solo aparecen 50, lo que hace es leer los 10000 y luego muestra solo 50.

Por ello he estado investigando un poco para poder programar algun otro sistema mas eficiente, y leyendo algunas ideas y con un poco de imaginación he llegado a programar una forma de paginar usando el row_number y me gustaria que me dijeseis que tal os parece y en que lo podria mejorar.

Primero se ejectura una sentencia SQL que me devuelve el numero de registros que hay en la tabla. "Select count (*) FROM [ejemplo]"

Despues, segun la cantidad de registros por página que deseo visualizar, hago una división que me devuelve el número de paginas necesarias, despues cargo cada número de página en un listbox.

Calculo las variables ini y fin, que son el primer y ultimo registro que deseo leer:

ini = (pagina seleccionada en el listbox) * reg_x_paginas - reg_x_paginas
fin = ini + reg_x_paginas

Y finalmente cargo en un gridview los datos devueltos por la siguiente instrucción SQL: "Select * FROM (SELECT ID, nombre, row_number() over (ORDER BY ID) as num_fila FROM [ejemplo]) as DerivedTableName WHERE num_fila between " & ini & " AND " & fin

Para quien no lo sepa, row_numer te devuelve la posición de un registro según un orden.

Que os parece?

PD: ¿Alguien sabe donde puedo encontrar bases de datos de gran volumen para hacer pruebas?

Gracias de antemano, saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:25.