Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/08/2011, 05:16
Fernando_net
 
Fecha de Ingreso: marzo-2010
Mensajes: 191
Antigüedad: 14 años, 8 meses
Puntos: 3
Pregunta Hacer consultas en vb.net

Hola a todos.

Veréis, estoy haciendo un módulo en .net que hace un montón de consultas. Todo esto es para un formulario que muestra resultados, cada resultado aparece en un label.

El caso es que son tantas que me ocupan un montón de líneas de código. Pero a efectos de optimización creo que está mal, no se... creo que algo estoy haciendo mal.

Os puedo pegar el código para que veáis a ver si se pudiera hacer algo para mejorarlo? No estoy muy ducho en cuanto consultas en vb.net y claro, lo hago lo mejor que se...

Código VB .NET:
Ver original
  1. Public Sub carga_datos_estadisticas
  2.         With Formulario_estadisticas
  3.  
  4.             ''cargamos los datos
  5.             'total encuestas
  6.             .total_1.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja;")
  7.             .total_2.Text = consulta.select_count("select queja.qu_identificador FROM (servicio INNER JOIN usuarios ON servicio.se_identificador = usuarios.us_servicio) INNER JOIN queja ON usuarios.us_identificador = queja.qu_usuario WHERE (((servicio.se_nombre)='Ropero'));")
  8.             .total_3.Text = consulta.select_count("select queja.qu_identificador FROM (servicio INNER JOIN usuarios ON servicio.se_identificador = usuarios.us_servicio) INNER JOIN queja ON usuarios.us_identificador = queja.qu_usuario WHERE (((servicio.se_nombre)='Cocina'));")
  9.             .total_4.Text = consulta.select_count("select queja.qu_identificador FROM (servicio INNER JOIN usuarios ON servicio.se_identificador = usuarios.us_servicio) INNER JOIN queja ON usuarios.us_identificador = queja.qu_usuario WHERE (((servicio.se_nombre)='Limpieza'));")
  10.  
  11.             'solucionadas
  12.             .total_5.Text = consulta.select_count("select queja.qu_identificador FROM (servicio INNER JOIN usuarios ON servicio.se_identificador = usuarios.us_servicio) INNER JOIN queja ON usuarios.us_identificador = queja.qu_usuari WHERE (((queja.qu_solucionada)='1'));")
  13.             .total_6.Text = consulta.select_count("select queja.qu_identificador FROM (servicio INNER JOIN usuarios ON servicio.se_identificador = usuarios.us_servicio) INNER JOIN queja ON usuarios.us_identificador = queja.qu_usuari WHERE (((servicio.se_nom)='Ropero') AND ((queja.qu_solucionada)='1'));")
  14.             .total_7.Text = consulta.select_count("select queja.qu_identificador FROM (servicio INNER JOIN usuarios ON servicio.se_identificador = usuarios.us_servicio) INNER JOIN queja ON usuarios.us_identificador = queja.qu_usuari WHERE (((servicio.se_nom)='Cocina') AND ((queja.qu_solucionada)='1'));")
  15.             .total_8.Text = consulta.select_count("select queja.qu_identificador FROM (servicio INNER JOIN usuarios ON servicio.se_identificador = usuarios.us_servicio) INNER JOIN queja ON usuarios.us_identificador = queja.qu_usuari WHERE (((servicio.se_nom)='Limpieza') AND ((queja.qu_solucionada)='1'));")
  16.  
  17.             'porcentaje
  18.             .total_9.Text = calcula_porcentaje(.total_5.Text, .total_1.Text)
  19.             .total_10.Text = calcula_porcentaje(.total_6.Text, .total_2.Text)
  20.             .total_11.Text = calcula_porcentaje(.total_7.Text, .total_3.Text)
  21.             .total_12.Text = calcula_porcentaje(.total_8.Text, .total_4.Text)
  22.  
  23.             'total usuarios
  24.             .total_13.Text = consulta.select_count("SELECT usuarios.us_identificador FROM usuarios;")
  25.             .total_14.Text = consulta.select_count("SELECT usuarios.us_identificador, usuarios.us_servicio FROM usuarios WHERE (((usuarios.us_servicio)=1));")
  26.             .total_15.Text = consulta.select_count("SELECT usuarios.us_identificador, usuarios.us_servicio FROM usuarios WHERE (((usuarios.us_servicio)=2));")
  27.             .total_16.Text = consulta.select_count("SELECT usuarios.us_identificador, usuarios.us_servicio FROM usuarios WHERE (((usuarios.us_servicio)=3));")
  28.  
  29.             'relación usuarios/incidencias
  30.             .total_17.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=1;")
  31.             .total_18.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=2;")
  32.             .total_19.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=3;")
  33.             .total_20.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=4;")
  34.             .total_21.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=5;")
  35.             .total_22.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=6;")
  36.             .total_23.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=7;")
  37.             .total_24.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=8;")
  38.             .total_25.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=9;")
  39.             .total_26.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=10;")
  40.  
  41.             'total motivos
  42.             .total_27.Text = consulta.select_count("SELECT motivo.mo_identificador FROM motivo;")
  43.             .total_28.Text = consulta.select_count("SELECT motivo.mo_identificador FROM motivo WHERE (((motivo.mo_tipo)=1)) OR (((motivo.mo_tipo)=2)) OR (((motivo.mo_tipo)=3));")
  44.             .total_29.Text = consulta.select_count("SELECT motivo.mo_identificador FROM motivo WHERE (((motivo.mo_tipo)=4));")
  45.             .total_30.Text = consulta.select_count("SELECT motivo.mo_identificador FROM motivo WHERE (((motivo.mo_tipo)=5));")
  46.         End With
  47.     End Sub

Para los que se lo estén preguntando, la función Consulta.select_count contiene lo siguiente:

Código VB .NET:
Ver original
  1. Public Function select_count(ByVal consulta As String) As Integer
  2.         'conectamos a la base de dades
  3.         conexion.conecta()
  4.  
  5.         Try
  6.             cmdcount = New OleDb.OleDbDataAdapter(consulta, conexion.cnn)
  7.             dtcount = New DataTable
  8.             cmdcount.Fill(dtcount)
  9.  
  10.             Return dtcount.Rows.Count
  11.         Catch ex As Exception
  12.             mensaje.mensaje_error_ok("Error: " & ex.Message)
  13.         Finally
  14.             conexion.desconecta()
  15.         End Try
  16.     End Function

Se podría mejorar para que no sean tantas? Quiero decir... se podría optimizar el código?

Muchas gracias por la ayuda