Eso es porque ExecuteNonQuery
no devuelve el resultado de la consulta, simplemente la ejecuta en el servidor SQL. El valor de retorno es el número de filas afectadas por su declaración, -1 cuando la declaración no afecta ninguna fila. ExecuteNonQuery
(como su nombre lo indica) no está diseñado para devolver resultados de consultas, sino para ejecutar una declaración que cambia datos (como INSERTAR, ELIMINAR, ACTUALIZAR). Los documentos dicen:
Podrías usar:
count = (int)command.ExecuteScalar();
Para conseguir el conteo que buscas. También hay un ejemplo en los docs para ExecuteScalar
.