elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Eficiencia para filtros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Eficiencia para filtros  (Leído 375 veces)
#Aitor

Desconectado Desconectado

Mensajes: 173



Ver Perfil
Eficiencia para filtros
« en: 8 Marzo 2018, 03:10 »

Buenas, necesito filtrar en una base de datos según las opciones que doy en la imagen.



Viendo todas las posibilidades he hecho una mega chapuza con if/elseif/else, ya que no veo una forma amigable de poner unos select case ahi.

El resultado es el siguiente:

Código
  1.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  2.        If ComboBox1.Text <> "Seleccionar usuario" Then
  3.            If (DateTimePicker1.Enabled) Then
  4.                If (No.Checked = False And Si.Checked) Then
  5.                    ' Query con usuario, fecha, y giros (solo los dados)
  6.                ElseIf (No.Checked And Si.Checked = False) Then
  7.                    ' Query con usuario, fecha, y giros (solo los NO dados)
  8.                Else
  9.                    'Query con usuario y fecha
  10.                End If
  11.            Else
  12.                If (No.Checked = False And Si.Checked) Then
  13.                    ' Query con usuario, y giros (solo los dados)
  14.                ElseIf (No.Checked And Si.Checked = False) Then
  15.                    ' Query con usuario, y giros (solo los NO dados)
  16.                Else
  17.                    ' Query con usuario
  18.                End If
  19.            End If
  20.        Else
  21.            If (DateTimePicker1.Enabled) Then
  22.                If (No.Checked = False And Si.Checked) Then
  23.                    ' Query con fecha, y giros (solo los dados)
  24.                ElseIf (No.Checked And Si.Checked = False) Then
  25.                    ' Query con fecha, y giros (solo los NO dados)
  26.                Else
  27.                    ' Query  fecha.
  28.                End If
  29.            Else
  30.                If (No.Checked = False And Si.Checked) Then
  31.                    ' Query con giros (solo los dados)
  32.                ElseIf (No.Checked And Si.Checked = False) Then
  33.                    ' Query con giros (solo los NO dados)
  34.                End If
  35.            End If
  36.        End If
  37.    End Sub
  38.  

La idea es mandar una consulta diferente a la base de datos en función de que fue lo que se filtró.

Mi pregunta es, ¿hay alguna forma de hacer más eficiente todo esto?


« Última modificación: 8 Marzo 2018, 03:15 por #Aitor » En línea

Mi algoritmo en PHP (estupideces y más).
Código
  1. while($Se_feliz){
  2.  Piensa_un_OBJETIVO(); // Sin excusas!
  3.  if($Tienes_un_objetivo){
  4.    Suspira(); // Sé paciente.
  5.    if($Consigues_el_objetivo){ echo "¡Felicidades #Aitor!";return;
  6.      //RETURN; ¿O volvemos a empezar?
  7.    }else{
  8.      Inténtalo_de_nuevo();
  9.    }
  10.  }
  11. }
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines