Foros del Web » Programando para Internet » ASPX (.net) »

C#.Net: Saber el número de resultados devueltos por una consulta SQL (SELECT)

Estas en el tema de C#.Net: Saber el número de resultados devueltos por una consulta SQL (SELECT) en el foro de ASPX (.net) en Foros del Web. Qué tal. Sabe alguien cómo saber el número de resultados devueltos por una consulta SQL, cuyos resultados fueron almacenados en un DataReader? La cosa es ...
  #1 (permalink)  
Antiguo 13/01/2009, 08:40
 
Fecha de Ingreso: enero-2006
Ubicación: Maracay, Edo. Aragua
Mensajes: 206
Antigüedad: 18 años, 3 meses
Puntos: 0
Pregunta C#.Net: Saber el número de resultados devueltos por una consulta SQL (SELECT)

Qué tal.

Sabe alguien cómo saber el número de resultados devueltos por una consulta SQL, cuyos resultados fueron almacenados en un DataReader?

La cosa es así. Hice una consulta a la tabla departments:

Código:
query = "SELECT * FROM deparments";
Utilizando el método ExecuteReader, ejecuté dicha consulta y almacene el resultado en un objeto DataReader:

Código:
reader = dbAccess.ExecuteReader(query)
Lo que sucede es que quiero almacenar cada resultado de la consulta en un objeto de la clase Department y para ello debo crear un arreglo de objetos Department:

Código:
Department[] departments;
Pero debo indicar el tamaño del arreglo, cierto? Y por eso es que necesito saber cuántos resultados arrojó la consulta para hacer algo así:

Código:
Department[] deparments = new Department[numberOfResults]
Otra opción sería crear un arreglo dinámico, pero no sé cómo hacerlo y supongo que no es la forma más fácil.

Saludos a todos y gracias por sus respuestas.
  #2 (permalink)  
Antiguo 13/01/2009, 09:04
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: C#.Net: Saber el número de resultados devueltos por una consulta SQL (SELE

List<Department> lista=new List<Department>();


lista.Add(tuobjetodeparment);

y despues simplemente puedes hacer un

lista.ToArray() y lo convertira en un Department[]
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 13/01/2009, 10:20
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Respuesta: C#.Net: Saber el número de resultados devueltos por una consulta SQL (SELE

Pues yo manejo algo así:

Código c#:
Ver original
  1. List<object[]> retorno = null;
  2. object[] tmp;
  3.         try
  4.         {
  5.             conexion.Open();
  6.             SqlDataReader lector = comando.ExecuteReader();//trae tu comando
  7.             if (lector.HasRows)
  8.             {
  9.                 retorno = new List<object[]>();
  10.                 while (lector.Read())
  11.                 {
  12.                     tmp = new object[lector.FieldCount];//coloco mi arreglo con los n números de campo obtenidos
  13.                     lector.GetValues(tmp);
  14.                     retorno.Add(tmp);
  15.                 }
  16.             }
  17.             else
  18.             {
  19.                 tmp = null;
  20.             }
  21.         }
  22.         catch
  23.         {
  24.             if (conexion != null)
  25.                 conexion.Close();
  26.         }

lo que te hace este código es que lees una consulta de N filas por M columnas, cuando asignes a tu clase lo puedes buscar en esa lista:

retorno[0][0] = esto es el primer registro obtenido junto con su primer campo
retorno[0][1] = esto es el primer registro obtenido junto con su segundo campo
.
.
.
retorno[N][M] = esto es el registro N obtenido junto con su campo M

Espero eso te ayude.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #4 (permalink)  
Antiguo 13/01/2009, 15:35
 
Fecha de Ingreso: enero-2006
Ubicación: Maracay, Edo. Aragua
Mensajes: 206
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: C#.Net: Saber el número de resultados devueltos por una consulta SQL (SELE

Qué tal.

Gracias a ambos por sus respuestas.

Seguí el consejo de Peterpay, me pareció más sencillo y es justo lo que necesito.
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 23:23.