Filas de un DataReader

23/12/2003 - 11:45 por Roger | Informe spam
hola,
No hay manera de saber el numero de filas que tiene un
DataReader sin recorrerlo?
gracias y un saludo;
 

Leer las respuestas

#1 Sergio Acosta
23/12/2003 - 20:37 | Informe spam
No, no la hay. Por la naturaleza del DataReader. Es un cursor del lado del
servidor, de tal manera que si no lo recorres, posiblemente los datos ni
siquiera viajen nunca hacia el cliente. El cliente no tiene forma de saber
de antemano cuántos registros regresará el servidor.

La solución que mas frecuentemente he visto es hacer el SELECT del número de
registros manualmente antes de regresar el DataReader. Se puede hacer
incluso en el mismo comando (que se ejecuta transaccional, evitando que el
conteo y el conjunto de datos no sean correspondientes uno con otro):

comando.CommandText = "Select count(*) from tabla; select * from tabla";

eso va a generar 2 Results en el DataReader:

SqlDataReader reader = comando.ExecuteReader();

// resultados de 'select count(*) from tabla'
reader.Read();
int numFilas = (int)reader.GetValue(0);
// resultados de 'select * from tabla'
reader.NextResult();
while(reader.Read())
{
/// etc...
}

Sergio

"Roger" wrote in message
news:072401c3c941$ea33daf0$
hola,
No hay manera de saber el numero de filas que tiene un
DataReader sin recorrerlo?
gracias y un saludo;

Preguntas similares