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

Consulta Multiple Utilizando ComboBox

Estas en el tema de Consulta Multiple Utilizando ComboBox en el foro de .NET en Foros del Web. Buenas tardes compañeros mi inquietud es la siguiente tengo 5 ComboBox que los llenos con unos datos de mi BD, la cues tion es que ...
  #1 (permalink)  
Antiguo 16/03/2009, 15:16
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Consulta Multiple Utilizando ComboBox

Buenas tardes compañeros mi inquietud es la siguiente tengo 5 ComboBox que los llenos con unos datos de mi BD, la cues tion es que el usuario puede hacer consultas con cualquiera de los datos de los 5 combobox, los ComboBox estan en un Tabcontrol. lo que estoy tratando de plantear para realizar la consulta multiple sea por uno o por los cinco criterios(ComboBox) es la siguiente:
Código:
Dim cControl As Control, cCriterio As String = ""
For Each cControl In Me.Controls
      If (TypeOf cControl Is System.Windows.Forms.ComboBox) Then
          If cControl.Tag = "codigo_linea" Or cControl.Tag = "sector" Or cControl.Tag = "codigo_planta" Or cControl.Tag = "codigo_filtra" Or cControl.Tag = "codigo_tipo" Then
              cCriterio = cCriterio + cControl.Tag + " = " + CType(cControl, System.Windows.Forms.ComboBox).SelectedValue + " AND "                    
          End If     
      End If
Next
cCriterio = Mid(cCriterio, 1, cCriterio.Length - 4)
MessageBox.Show(cCriterio)
If ConsultaOP("rs.unidad,rs.equivalente,rs.codigo_comodidad,rs.cliente,rs.pais,rs.codigo_linea,rs.sector,rs.codigo_planta,rs.codigo_filtra,rs.codigo_tipo,SUBSTRING(rs.codigo_comodidad,7,1) AS Comodin, SUBSTRING(rs.codigo_comodidad,8,3) AS Consecutivo,rd.valor1 AS DIAMETRO, rd.valor3 AS ALTURA, rd.valor2 AS ROSCA, CASE WHEN rd.valor6 = 1 THEN 'SI' ELSE 'NO' END AS TUERCA, CASE WHEN rd.valor7 = 1 THEN 'SI' ELSE 'NO' END AS DRAING, CASE WHEN valor9 = 1 THEN 'SI' ELSE 'NO' END AS VALVULA_ANTIDRENAJE, CASE WHEN valor8 = 1 THEN '8 a 11' WHEN valor8 = 2 THEN '17 a 19' WHEN valor8 = 3 THEN '20' WHEN rd.valor8 = 4 THEN '30' END AS VALVULA_ALIVIO, CASE WHEN rd.valor11 = 1 THEN 'SI' ELSE 'NO' END AS SELLO_CENTRAL", "PM_Refe_Spects AS rs INNER JOIN PM_Refe_Details AS rd ON rs.unidad = rd.Unidad", cCriterio, Registro, "Unidad") Then
    Me.rbmultiple.DataSource = Sdatatable
End If
De esta manera armo mi criterio de consulta y lo paso a mi función ConsultaOP y posteriormente mandar los resultados a un DataGridView , pero tengo dos incovenientes al estar los combox dentro de un TabControl no los esta reconociendo, coloque un ComboBox por fuera del Tabcontrol y si lo reconoce o acepta su parametro en este caso en la propiedad Tag de cada ComBoBox le pongo el nombre del campo de mi tabla conforme quiero que se vaya armando la consulta, el segundo problema es que mi consulta la debo hacer con el datos que me daCType(cControl, System.Windows.Forms.ComboBox).SelectedValue, es decir en mi combo se visualiza una opción Flujo Completo -> Cuyo Valor es 2, por el cual deseo que se vaya armando la consulta, pero me arroja un error que dice que no se puede convertir del tipo Stirng a Tipo Double, lo plantee de esta manera ya que lei que la variable cControl es del tipo Control la cual no tiene la propiedad SelectedValue, lo que se haría sería convertir el tipo de la Variable, pero aún así me arroja el error.

Porque no reconoce los controles que se encuentran en un TabControl??? como sería la forma de recorrer estos controles????.

Agradesco sus respuestas al respecto.



Saludos y Gracias.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #2 (permalink)  
Antiguo 16/03/2009, 16:57
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Consulta Multiple Utilizando ComboBox

Listo compañeros ya lo solucione simplemente recorriendo el Tag donde estan los combos
Código:
  Dim cCriterio As String = ""
        For Each tp As TabPage In tmultiple.TabPages
            For Each ctl As Control In tp.Controls
                If TypeOf ctl Is ComboBox Then
                    If ctl.Tag = "codigo_linea" Or ctl.Tag = "sector" Or ctl.Tag = "codigo_planta" Or ctl.Tag = "codigo_filtra" Or ctl.Tag = "codigo_tipo" Then
                        If ctl.Text <> vbNullString Then
                            cCriterio = cCriterio + ctl.Tag + " = " + ctl.Text + " AND "
                           End If
                    End If
                End If
            Next
        Next
        cCriterio = Mid(cCriterio, 1, cCriterio.Length - 4)
        MessageBox.Show(cCriterio)
Solo me queda un inconveniente necesito realizar la consulta con el valor que me devuelve la propiedad SelectedValue del Control ComboBox en este caso no la propiedad text como esta en mi ejemplo obviamente no existe que tengo que hacer para pasar esa variable de tipo Control a un objeto ComboBox para que me reconozca todas sus propiedades???

Saludos y Gracias.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #3 (permalink)  
Antiguo 17/03/2009, 10:58
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
SOLUCIONADO: Consulta Multiple Utilizando ComboBox

Listo compañeros lo solucione de esta forma:
Código:
  Dim cCriterio As String = String.Empty
        For Each tp As TabPage In tmultiple.TabPages
            For Each ctl As Control In tp.Controls
                If TypeOf ctl Is ComboBox Then
                    If ctl.Tag = "codigo_linea" Or ctl.Tag = "sector" Or ctl.Tag = "codigo_planta" Or ctl.Tag = "codigo_filtra" Or ctl.Tag = "codigo_tipo" Then
                        If ctl.Text <> vbNullString Then
                            cCriterio = cCriterio + ctl.Tag + " = " + Convert.ToString(CType(ctl, System.Windows.Forms.ComboBox).SelectedValue) + " AND "
                        End If
                    End If
                End If
            Next
        Next

Saludos y Gracias por todo.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
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 11:52.