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

Realizar busqueda a la base de datos con varios campos de un formulario

Estas en el tema de Realizar busqueda a la base de datos con varios campos de un formulario en el foro de .NET en Foros del Web. Que tal compañeros buenos dias, al hacer el tipico SELECT de busqueda por un solo campo de un formulario ejemplo un TextBox no hay ningún ...
  #1 (permalink)  
Antiguo 19/11/2008, 10:34
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Realizar busqueda a la base de datos con varios campos de un formulario

Que tal compañeros buenos dias, al hacer el tipico SELECT de busqueda por un solo campo de un formulario ejemplo un TextBox no hay ningún problema, pero mi inquietud es como sería para por ejemplo plantear busquedas por cualquiera de los campos que tengo en mi formulario , busquedas por código y nombre y descripcion o solo por código y nombre o por todos los campos ETC., sin lugar a dura abria que recorrer todos los controles del formulario y verificar cual o cuales no estas vacios e ir armando una cadena de consulta a partir de los mismos, obviamente es un decir porque estoy un poco enredado con esto agradesco sus respuestas al respecto.



Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #2 (permalink)  
Antiguo 19/11/2008, 16:17
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Realizar busqueda a la base de datos con varios campos de un formulario

Alguna idea al respecto compañeros?






Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #3 (permalink)  
Antiguo 19/11/2008, 21:50
 
Fecha de Ingreso: julio-2008
Mensajes: 140
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Realizar busqueda a la base de datos con varios campos de un formulario

Y si, la unica que queda es segun lo que haya ingresado el usuario armar la consulta sql de esos campos.
  #4 (permalink)  
Antiguo 20/11/2008, 07:16
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Realizar busqueda a la base de datos con varios campos de un formulario

Si en eso estoy pensando este es el código que llevo pero estoy un poco atascado, ubique en la propiedad Tag de los textbox el nombre de cada campo de la tabla para armar la estructura deL SELECT, pero tengo un inconveniente necesito verificar si lo introducido en los TextBox es un numero o un caracter y dependiendo de esto ubicar o no las comillas sencillas y dobles para crear la consulta correctamente ejemplo
codigo = " & codigo.text & " y así sucesivamente, este es lo que llevo hasta el momento

Código:
Dim cControl As Control, contador As Integer, cCriterio As String = ""
        contador = 0
        For Each cControl In Me.Controls
            If TypeOf cControl Is System.Windows.Forms.TextBox Then
                If cControl.Text <> "" Then
                    contador = contador + 1
                    If contador > 1 Then
                        cCriterio = cCriterio + " AND " + cControl.Tag + " = " + cControl.Text
                        'MessageBox.Show("Control Vacio" & cControl.Name)
                    Else
                        cCriterio = cControl.Tag + " = " + cControl.Text
                    End If
                    MessageBox.Show(cCriterio)
                End If
            End If
        Next
Agradesco sus colaboraciones al respecto.


Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #5 (permalink)  
Antiguo 20/11/2008, 07:33
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Realizar busqueda a la base de datos con varios campos de un formulario

El otro incoveniente es el operador LIKE para las busquedas por nombre o ciudad ETC.


Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #6 (permalink)  
Antiguo 20/11/2008, 08:39
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Respuesta: Realizar busqueda a la base de datos con varios campos de un formulario

Yo por ejemplo lo haría asi:

Código:
select * from usuarios where
                                    NOMBRE     LIKE ISNULL( '%' + txtNombre.Text + '%') AND
                                    APELLIDOS LIKE ISNULL( '%' + txtApellidos.Text + '%')
Si metes algo en la caja de texto de nombre (txtNombre) filtrará, sino.. hará un like de %% que es lo mismo que decir que te coja todo.

Y luego, esta haciendo lo mismo con el apellido, y asi sucesivamente podrías hacer.
__________________
Charlie.

Última edición por chcma; 20/11/2008 a las 10:17
  #7 (permalink)  
Antiguo 20/11/2008, 08:50
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Realizar busqueda a la base de datos con varios campos de un formulario

Gracias por la repuesta, voy probarla.




Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #8 (permalink)  
Antiguo 21/11/2008, 19:35
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Realizar busqueda a la base de datos con varios campos de un formulario

Esta fue la solución que plantee de todas maneras gracias

Código:
Dim cControl As Control, cCriterio As String = ""
        For Each cControl In Me.Controls
            If (TypeOf cControl Is System.Windows.Forms.TextBox) Or (TypeOf cControl Is System.Windows.Forms.ComboBox) Then
                If cControl.Text <> "" Then
                    If cControl.Tag = "nombre" Or cControl.Tag = "direccion" Or cControl.Tag = "pais" Or cControl.Tag = "profesion" Then
                        cCriterio = cCriterio + cControl.Tag + " LIKE " + "'" + "%" + cControl.Text + "%" + "'" + " AND "
                    Else
                        cCriterio = cCriterio + cControl.Tag + " = " + cControl.Text + " AND "
                    End If
                End If
            End If
        Next cControl
        cCriterio = Mid(cCriterio, 1, cCriterio.Length - 4)
        ConsultarDatos("empleados", cCriterio) 
        Me.listado.DataSource = Sdatatable
Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #9 (permalink)  
Antiguo 22/11/2008, 08:34
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Respuesta: Realizar busqueda a la base de datos con varios campos de un formulario

Yo creo que sería mejor y más mantenible la solución que te propuse amigo, pero bueno... si te funciona, pues nada.

Saludos.
__________________
Charlie.
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 07:09.