Visual Basic Foro
Programación => Visual Basic .NET / C# => Mensaje iniciado por: ADONAIRAFA en Mayo 22, 2013, 07:33:52 pm
-
Saludos a todos !!!
Tengo un problema en una consulta SQL. Pero primero debo hablar de la tabla a consultar. Ésta, entre otros campos tiene los siguientes:
- Id_Inscripcion
- Cedula_de_Identidad
- Primer_Apellido
- Segundo_Apellido
- Primer_Nombre
- Segundo_ Nombre
- Telefono_Celular
- Telefono_Fijo
- Fecha_Nacimiento
- Direccion
- Codigo_de_Direccion
Ahora el código de dirección es de esta forma: 00XX-00XX-00XX-000X, donde las primeras 4 cifras corresponden al estado donde reside la persona, el 2do grupo de 4 cifras a las ciudad (perteneciente a dicho estado), el 3er grupo representa el barrio o urbanización, y el último grupo representa el sector del barrio.
Esto es porque necesito ubicar a personas de acuerdo a la zona donde vivan, y esta información la cargo en un DataGridView.
La consulta que uso es:
SELECT Cedula_de_Identidad AS Cedula, " & _
"Primer_Apellido AS Apellido, " & _
"Primer_Nombre AS Nombre, " & _
"Direccion, " & _
"Telefono_Celular AS Celular " & _
"FROM Mbrs " & _
"WHERE Codigo_de_Direccion LIKE '" & codigoParcial & "*'"
Donde codigoParcial representa una porcion del código (un grupo de 4 cifras). pero lamentablemente, no obtengo resultado alguno.
Tuve que incluir cuatro campos adicionales:
- Código_Edo
- Código_Cdd
- Código_Bar
- Código_Sct
Cada uno de ellos correspondientes a las zonas que ya mencioné y usé la consulta de esta forma:
SELECT Cedula_de_Identidad AS Cedula, " & _
"Primer_Apellido AS Apellido, " & _
"Primer_Nombre AS Nombre, " & _
"Direccion, " & _
"Telefono_Celular AS Celular " & _
"FROM Mbrs " & _
"WHERE Codigo_Edo = '" & codigoEstado & "' " & _
"AND Codigo_Cdd = '" & codigoCiudad & "'"
Este de arriba, para obtener las personas que residen en determinada ciudad... si quería hacer la búsqueda más exaustiva, por ejemplo de un determinado barrio, le agrego:
"AND Codigo_Bar = '" & codigoBarrio & "'"
De esta forma, funciona perfectamente, ya que carga el DataGridView de forma correcta.
Dígame alguien por favor, porque la primera de arriba no me funciona? dónde está el error?
Y pregunto esto, porque me parece que la forma de arriba debería ser la más correcta ya que la segunda, aún cuando funciona me obliga a colocar campos adicionales o quizás redundantes.
Saludos.
Manuel F. Borrego S.
Barcelona. Venezuela.
-
Tengo la cabeza medio quemada ahora, no llego a pensar bien la respuesta
Pero te recomiendo 2 cosas para poder ayudarte mejor:
1) Pone los tipos de datos de las columnas de la tabla, pueden ayudar :)
2) Pon las consultas SQL no como estan en visual basic (o el que sea) sino que ponelo y donde va el valor ponelo entre parentesis, ademas podes usar la etiqueta code
quedando así:
SELECT Cedula_de_Identidad AS Cedula,
Primer_Apellido AS Apellido,
Primer_Nombre AS Nombre,
Direccion,
Telefono_Celular AS Celular
FROM Mbrs
WHERE Codigo_Edo = '(codigoEstado)'
AND Codigo_Cdd = '(codigo)'
-
A ver... Yo nunca uso el asterisco como comodín...! Siempre lo hago así...!
La consulta que uso es:
SELECT Cedula_de_Identidad AS Cedula, " & _
"Primer_Apellido AS Apellido, " & _
"Primer_Nombre AS Nombre, " & _
"Direccion, " & _
"Telefono_Celular AS Celular " & _
"FROM Mbrs " & _
"WHERE Codigo_de_Direccion LIKE '" & codigoParcial & "%'"
Verifica y avísame...!
-
creo que esta mal el LIKE, es
WHERE codigo LIKE '%algoabuscar%'
-
creo que esta mal el LIKE, es
WHERE codigo LIKE '%algoabuscar%'
El comodin % se usa dependiendo de lo que se requiera buscar... por ejemplo...
Si yo deseo ir listando a medidas de que voy escribiendo, lo coloco de ultimo...
WHERE codigo LIKE 'algoabuscar%'
Si deseo buscar dentro del campo todo lo que contenga lo que escribo, lo coloco en ambos extremos...
WHERE codigo LIKE '%algoabuscar%'
Si por ejemplo no me importa con que numero comienza el codigo, pero el segundo debe ser un 2 y el resto que muestre mientras escribo... (Agrego el underscore) "_"
WHERE codigo LIKE '_2%'
Y así...!
-
Saludos a todos !!!
Gracias por sus respuestas inmediatas !!!
Miguel, Hermano gracias Hermano !!! exactamente la solución que buscaba, lo que pasa es que estaba usando el comodín '*' (asterisco) de mierda :P ese, y no daba para atras ni para adelante !!! pero el de tu primera propuesta:
SELECT Cedula_de_Identidad AS Cedula, " & _
"Primer_Apellido AS Apellido, " & _
"Primer_Nombre AS Nombre, " & _
"Direccion, " & _
"Telefono_Celular AS Celular " & _
"FROM Mbrs " & _
"WHERE Codigo_de_Direccion LIKE '" & codigoParcial & "%'"
Ese si es un tiro !!! funciona perfectamente, asi que Waldo, ssccaann43 tiene toda la razón !!! :o :o :o
Ahora bien, tal como dijo ssccaann43 la que tu propusiste, funciona cuando deseas buscar una porción de un string dentro de otro string más grande.
Gracias a todos !!!
Manuel F. Borrego Sterling 8)
PD: Miguel, ahora en julio DIOS mediante, voy a
pasar unos días en Caracas, a ver si nos
encontramos, y nos tomamos unas frías !!!
cuando puedas pásame tu nro por SMS,
que tuve que cambiar de teléfono, pero con
el mismo nro. saludos.