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

Contar registros SQL Server

Estas en el tema de Contar registros SQL Server en el foro de .NET en Foros del Web. Estoy un poco liado ahora. Quiero contar los registros que me devuelve el RecordSet en esta conexión, que no había tenido que utilizar hasta ahora. ...
  #1 (permalink)  
Antiguo 04/10/2004, 09:59
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Contar registros SQL Server

Estoy un poco liado ahora. Quiero contar los registros que me devuelve el RecordSet en esta conexión, que no había tenido que utilizar hasta ahora. Es para C#, con lo que me lio aún más:

Código:
string strCon = ConfigurationSettings.AppSettings["constring"];
string strSql = "SELECT Count(profesion) FROM inscripcion_admin_empresa WHERE profesion='"+
dropProfesion.SelectedItem.Value+"'";
SqlConnection con = new SqlConnection(strCon);
SqlCommand cmd = new SqlCommand(strSql,con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Y añadirlo aquí:

lblOutput.Text = numRegistros+" registros encontrados.";

Gracias de antemano, porque lo tengo que resolver antes de mañana. He buscado y buscado pero no consigo encontralo. Sí para otros tipos de conexiones, pero para esta no.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #2 (permalink)  
Antiguo 04/10/2004, 11:15
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Hazlo de la siguiente forma: (utiliza el Scalar en vez del NonQuery ya que el Nonquery por lo regular se usa para los insert, update, delete, etc.. y devuelve el numero de registro afectados)


Cita:
string strCon = ConfigurationSettings.AppSettings["constring"];
string strSql = "SELECT Count(profesion) FROM inscripcion_admin_empresa WHERE profesion='" + dropProfesion.SelectedItem.Value + "'";
SqlConnection con = new SqlConnection(strCon);
SqlCommand cmd = new SqlCommand(strSql,con);
con.Open();
int numRegistros = cmd.ExecuteScalar();
con.Close();

lblOutput.Text = numRegistros + " registros encontrados.";
Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 04/10/2004, 11:56
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
¿ executenonquery() ?

Ahi necesitas un DR chico.
__________________
Charlie.
  #4 (permalink)  
Antiguo 04/10/2004, 11:58
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
string strSql = "SELECT Count(profesion) as alias FROM ins ...
con.Open();
DataReader DR = cmd.ExecuteScalar();
con.Close();

lblOutput.Text = DR("alias") + " registros encontrados.";
__________________
Charlie.
  #5 (permalink)  
Antiguo 04/10/2004, 12:12
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
¿ executenonquery() ?

Ahi necesitas un DR chico.
chcma, no es necesario un DR para hacer un ExecuteNonQuery or ExecuteScalar, ya que el primero te devuelve el numero de registros afectados y el segundo te devuelve el valor de la primera fila y renglón cuando haces una funcion agregada.

P.D Claro que te va a funcionar usando un DR pero no es lo mas óptimo.

Con ésta lína basta:

Cita:
con.Open();
int numRegistros = cmd.ExecuteScalar();
con.Close();
Salu2 friend
  #6 (permalink)  
Antiguo 04/10/2004, 12:19
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Muy bien, muchas gracias a los dos. Voy a probar de las dos maneras porque creo que ya lo intenté con ExecuteScalar() y si no recuerdo mal me dio algún error. Creo que era porque no se podía asignar a una variable int el valor del objeto, o algo así, por lo que probé a (int)cmd.ExecuteScalar() pero nada.

Gracias de nuevo.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!

Última edición por Bravenap; 04/10/2004 a las 12:22
  #7 (permalink)  
Antiguo 04/10/2004, 13:10
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Pues ahora si que ha funcionado perfectamente. Pero he tenido que hacer una pequeña modificación:

Código:
string strCon = ConfigurationSettings.AppSettings["constring"];
string strSql = "SELECT Count(profesion) FROM inscripcion_admin_empresa WHERE profesion='" + dropProfesion.SelectedItem.Value + "'";
SqlConnection con = new SqlConnection(strCon);
SqlCommand cmd = new SqlCommand(strSql,con);
con.Open();
int numRegistros = (int)cmd.ExecuteScalar();
con.Close();

lblOutput.Text = numRegistros + " registros encontrados.";
Por lo demás todo perfecto. Muchas gracias de nuevo.

A por cierto, por si alguien lo utiliza, que no se olvide de agregar las referencias System.Configuration y System.Data.SqlClient... ya me estaba yo cag__o en tó. Je je.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #8 (permalink)  
Antiguo 04/10/2004, 14:48
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Mmm, no sabia eso RootK, supongo que también valdrá para VB.
__________________
Charlie.
  #9 (permalink)  
Antiguo 04/10/2004, 15:50
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Sí claro, siempre y cuando la sintáxis sea la correcta para VB. Ya sabes que son lenguajes (VB.Net y C#) orientados a objetos y utilizan las mismas clases, es decir, que van a tener los mismos métodos y propiedades aunque se les invoque de manera distinta.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
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 05:08.