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
Public Sub carga_datos_estadisticas With Formulario_estadisticas ''cargamos los datos 'total encuestas .total_1.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja;") .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'));") .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'));") .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'));") 'solucionadas .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'));") .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'));") .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'));") .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'));") 'porcentaje .total_9.Text = calcula_porcentaje(.total_5.Text, .total_1.Text) .total_10.Text = calcula_porcentaje(.total_6.Text, .total_2.Text) .total_11.Text = calcula_porcentaje(.total_7.Text, .total_3.Text) .total_12.Text = calcula_porcentaje(.total_8.Text, .total_4.Text) 'total usuarios .total_13.Text = consulta.select_count("SELECT usuarios.us_identificador FROM usuarios;") .total_14.Text = consulta.select_count("SELECT usuarios.us_identificador, usuarios.us_servicio FROM usuarios WHERE (((usuarios.us_servicio)=1));") .total_15.Text = consulta.select_count("SELECT usuarios.us_identificador, usuarios.us_servicio FROM usuarios WHERE (((usuarios.us_servicio)=2));") .total_16.Text = consulta.select_count("SELECT usuarios.us_identificador, usuarios.us_servicio FROM usuarios WHERE (((usuarios.us_servicio)=3));") 'relación usuarios/incidencias .total_17.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=1;") .total_18.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=2;") .total_19.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=3;") .total_20.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=4;") .total_21.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=5;") .total_22.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=6;") .total_23.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=7;") .total_24.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=8;") .total_25.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=9;") .total_26.Text = consulta.select_count("SELECT queja.qu_identificador FROM queja where queja.qu_usuario=10;") 'total motivos .total_27.Text = consulta.select_count("SELECT motivo.mo_identificador FROM motivo;") .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));") .total_29.Text = consulta.select_count("SELECT motivo.mo_identificador FROM motivo WHERE (((motivo.mo_tipo)=4));") .total_30.Text = consulta.select_count("SELECT motivo.mo_identificador FROM motivo WHERE (((motivo.mo_tipo)=5));") End With 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
Public Function select_count(ByVal consulta As String) As Integer 'conectamos a la base de dades conexion.conecta() Try cmdcount = New OleDb.OleDbDataAdapter(consulta, conexion.cnn) dtcount = New DataTable cmdcount.Fill(dtcount) Return dtcount.Rows.Count Catch ex As Exception mensaje.mensaje_error_ok("Error: " & ex.Message) Finally conexion.desconecta() End Try 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