PDA

Ver la Versión Completa : Numero de Registros


sergio_015
05-12-2007, 17:03:19
Hola, soy nuevo en esto de .net, mi duda es como puedo saber el numero de registros que me arroja una consulta por medio de un Store procedure, uso este codigo:

commAccess.CommandType = CommandType.StoredProcedure commAccess.CommandText = "BuscaClientes" commAccess.Parameters.Add("@CveCliente",OleDb.OleDbType.Integer)commAccess.Parameters("@CveCliente").Value = CveCliente commAccess.ExecuteNonQuery()

Lo quer necesito saber es si me encontro un registro, para yo informarle al ususario si encontro algo en la busqueda o no, agradesco las repuestas!!!

__hector
11-12-2007, 21:07:34
El .ExecuteNonQuery() retorna el numero de registros que se modificaron con la ejecucion de la sentencia sql. Esta concebido para sentencias UPDATE y DELETE basicamente (creo que inserts tambien, pero no estoy seguro).

Puedes entonces hacer una de varias cosas:
- Incluir un DataAdapter/Dataset, y llenar el dataset usando el DataAdapter y el command. El dataset tendria el resultado de ejecutar la consulta (la estructura y filas que trae el command) en una tabla, para la cual podrias calcular facilmente la cantidad de filas.

Seria algo como (el codigo no esta escrito estrictamente, sino para darte una idea):

DataSet dataset = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = commAccess;
adapter.Fill(dataset);

int numrows = dataset.Tables[0].Rows.Count;


Esa opcion NO ES RECOMENDABLE, si lo unico que quieres es saber la cantidad de filas.

- Puedes (y deberias) crear otro procedimiento que haga un COUNT(*) de los registros, si solo quieres saber la cantidad de records de la consulta. Asi, con el metodo ExecuteScalar(); del Command tendrias el dato.


int cantidadRegistros = (int) commCount.ExecuteScalar();