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

limit 10

Estas en el tema de limit 10 en el foro de .NET en Foros del Web. Hola Aforados: Creo que esta consulta es mas de SQL que de ASP.NET, con lo bien que me tratais no quisiera incurrir en un off ...
  #1 (permalink)  
Antiguo 23/02/2005, 11:19
 
Fecha de Ingreso: marzo-2004
Mensajes: 198
Antigüedad: 21 años
Puntos: 1
limit 10

Hola Aforados:

Creo que esta consulta es mas de SQL que de ASP.NET, con lo bien que me tratais no quisiera incurrir en un off topic.

Bueno al tema.

Para seleccionar diez registros de una tabla con un select *.* from foro limit 10 tengo entendido que te trae solo 10 registros.

Cual seria la instruccion, si la hay para traerse los diez segundos registros y los 10 terceros, etccc. solamente..


Gracias anticipadas
  #2 (permalink)  
Antiguo 23/02/2005, 12:29
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años, 1 mes
Puntos: 50
Por lo que veo estas usando MySQL verdad.. ?? (por lo de limit 10)

En fin, antes de cualquier cosa, para que lo necesitas exactamente ??

Porque se puede hacer de varias formas.

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 23/02/2005, 14:54
 
Fecha de Ingreso: marzo-2004
Mensajes: 198
Antigüedad: 21 años
Puntos: 1
Si asi es rootk , :), mira estoy haciendo un foro en asp.net que ya tengo hecho en php con mysql, para aprender asp.net.

El caso es que tengo una busqueda de las preguntas del foro y las saco en una hoja web sin scroll ( no me gustan los scroll) lo que me deja sacar 10 preguntas por pagina.

Se me ha ocurrido que en lugar de sacar cada vez todas las preguntas y enseñar solo 10 si solo saco 10 reduciria el consumo de recursos.

Si no es asi dimelo. Y asi llego a que en la primera pagina sacaria las 10 primeras, pero en la segunda pagina quiero sacar de la 10 a la 20 y como los id pueden no ser correlativos estoy buscando una instruccion en sql que me lo haga.

El codigo es asi por el momento sin limit 10

comSelect = New Odbc.OdbcCommand("SELECT id, autor, titulo, fecha,lecturas, respuestas, ult_respuesta FROM foro WHERE identificador=0 ORDER BY ult_respuesta DESC", OdbcConnection1)



gracias anticipadas
  #4 (permalink)  
Antiguo 23/02/2005, 15:18
Avatar de jeancarle  
Fecha de Ingreso: junio-2004
Mensajes: 37
Antigüedad: 20 años, 9 meses
Puntos: 0
Hola a todos, podrías utilizar un DataGrid para desplegar la información de los temas del foro de forma paginada y así el DataGrid se encargará de desplegar los temas del 1 al 10 y del 10 al 20 y así sucesivamente, esto es lo que se me ocurre.
__________________
Todo es mas sencillo de lo que parece... :-)
  #5 (permalink)  
Antiguo 23/02/2005, 15:37
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años, 1 mes
Puntos: 50
Creo que mas o menos te entendí... mira.. de hecho tengo un ejemplo donde hago precisamente una paginacion con un datareader para no paginar todo con un dataset ya que en el dataset guardas todos los registros aunque solo vayas a mostrar 1.

Pero en fin.. el caso es que podrías hacer ésto: (tratare de ser breve y claro.

Supongamos que tu tamaño de pagina son 10

Declaras un datareader y le pasas la query que necesitas.

Dim CurrentPage as Integer

...
...
Dim PageSize = 10

dr = cmd.executereader()

For i = 1 to ((CurrentPage - 1) * PageSize)
dr.read() 'navegar por el reader
Next i

Despues dependiendo de la página en que te encuentres ya les tu reader como normalmente lo heces.

Defines un datatable para llenarlo con los datos que necesitas.

Cita:
Dim dt As New DataTable()
dt.Columns.Add("Nombre", GetType(String))
...
...


For i = 1 To PageSize
If dr.Read() Then
Dim drow As DataRow = dt.NewRow
'Obtengo el campo y lo guardo en mi row
drow(0) = CType(dr("NombreCampo"), String)
dt.Rows.Add(drow)
End If
Next

dr.close() 'cierro mi reader

Y despues ya le paso a mi control, sea grid, repeater, datalist..etc.. el datatable que acabo decrear y que contiene los registros que necesito (ya no me trae todos )

Cita:
micontrol.datasource = dt
micontro.databind()
Y cuando de click el usuario lo que tendrás que hacer es aumentar la página actual en uno

CurrentPage += 1

Para que se haga otra vez el ciclo....

La verdad es una explicacion super general porque el codigo es medio largo.. pero creo que te puedes dar una idea...

Otra forma es haciendolo con un dataadapter y un dataset..

Aqui puse un ejemplo tambien.

http://www.forosdelweb.com/showthrea...light=datalist

Salu2
  #6 (permalink)  
Antiguo 24/02/2005, 09:33
 
Fecha de Ingreso: marzo-2004
Mensajes: 198
Antigüedad: 21 años
Puntos: 1
Muchisimas gracias, lo pruebo.
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 11:33.