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

Hacer consultas en vb.net

Estas en el tema de Hacer consultas en vb.net en el foro de .NET en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 18/08/2011, 05:16
 
Fecha de Ingreso: marzo-2010
Mensajes: 191
Antigüedad: 14 años, 9 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
  #2 (permalink)  
Antiguo 18/08/2011, 08:25
Avatar de alan_69niupi  
Fecha de Ingreso: junio-2011
Mensajes: 200
Antigüedad: 13 años, 6 meses
Puntos: 17
Respuesta: Hacer consultas en vb.net

es que todo depende que es lo que tu programa haga, lo que necesitas consultar y como lo puedes mostrar. solo fijate si hay consultas que se repitan y esa consulta la puedes poner en un metodo o usar usar un archivo dll que puedes crear en el mismo visual basic claro si lo que estas manejando es proyecto.

lo que puedo notar es que donde dice relacion de usuarios/incidencias estas sacando una consulta una por una. podrias hacer un
selec * from (esto para que te selecione todo) o
SELECT campos FROM tabla WHERE campo_fecha BETWEEN fecha_1 AND fecha_2
podrias sustituir campo_fecha por usuariosy fecha_1 por 1 y fecha_2 por 10.

pero te menciona es dependiendo de como muestres los resultados de la consulta.
en lo personal me gusta usar los DataGridView
saludos espero haberte ayudado.
  #3 (permalink)  
Antiguo 18/08/2011, 08:46
 
Fecha de Ingreso: agosto-2011
Ubicación: Buenos Aires
Mensajes: 78
Antigüedad: 13 años, 4 meses
Puntos: 10
Respuesta: Hacer consultas en vb.net

Te recomiendo este link para que veas el tema del Acceso a Datos con .NET

http://www.orientadoanet.com/2011/07/programacion-en-capas-dal-consulta.html
__________________
www.orientadoanet.com

Etiquetas: consultaaccess, visual.net, formulario
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 06:02.