Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: Hartigan en 23 Julio 2010, 18:17 pm



Título: Ayuda con sentencia sql!!
Publicado por: Hartigan en 23 Julio 2010, 18:17 pm
Hola compañeros, pues acudo a vosotros nuevamente porque me ha surgido una pequeña duda.

Quiero hacer una consulta a la base de datos sql server usando el texto de un textbox.

Como puedo hacer para que me admita cómodines???? es decir.

yo tengo un textBox para buscar nombres, y yo escribo por ejemplo:  *berto

Como seria la sentencia sql para que admita los cómodines??? yo tengo lo siguiente que es como he visto por net que sería pero no me funciona:

Código
  1. sentenciaSql = "SELECT nombre, ape1, ape2, telefono, email  FROM contactos WHERE nombre like '%" + texto + "%'";

Donde texto es una variable que contiene el texto del textbox (texto = textBox1.Text)


Salu2 y gracias de antemano


Título: Re: Ayuda con sentencia sql!!
Publicado por: Novlucker en 23 Julio 2010, 18:22 pm
No se cual sea el problema pero la sentencia esta bien, solamente que en el textbox1.text no pongas el *, solo pon la palabra

Saludos


Título: Re: Ayuda con sentencia sql!!
Publicado por: [D4N93R] en 23 Julio 2010, 18:28 pm
Pues por lo que veo está bien.. Como dice Nov, quitale el * que eso no es comodín.. el comodín es %.


Título: Re: Ayuda con sentencia sql!!
Publicado por: Hartigan en 23 Julio 2010, 19:01 pm
Vale me había liado yo y no lo estaba entendiendo bien. Gracias chicos. ;)


Título: Re: Ayuda con sentencia sql!!
Publicado por: ssccaann43 © en 28 Julio 2010, 16:52 pm
Bien te explico un poco el uso de los comodines...!

Si deseas listar Todo lo que vaya Despues de 'AL' sería de la siguiente manera...


PD: Suponiendo que en el textbox escribes el 'AL'
Código
  1. sentenciaSql = "SELECT nombre, ape1, ape2, telefono, email  FROM contactos WHERE nombre like '" & TuTextBox.Text & "%'";


Ahora bien, si deseas listar todo lo que contenta 'AL', alli si sería usando ambos...

Código
  1. sentenciaSql = "SELECT nombre, ape1, ape2, telefono, email  FROM contactos WHERE nombre like '%" & TuTextBox.Text & "%'";

Ahora, supongamos que buscas un registro de esta lista, pero no recuerdas el nombre ni nada, solo que su ID o Codigo  comienza con '000' y termina en '14' pero hay 9999999 registros que van desde el 0000001 hasta el 9999999... Como podríamos buscarlos?

Bien podemos usar esta sentencia:

PD: Suponiendo que en el textbox escribes el 14 que es lo que recuerdas.

Código
  1. sentenciaSql = "SELECT nombre, ape1, ape2, telefono, email  FROM contactos WHERE Codigo like '000__" & TuTextBox.Text & "'";

Listo, con eso te los lista...

Bajate algún manual de SQL, hay muchos en la web, pero en caso de alguna duda, postea... Saludos...! ;D