none
Busqueda RRS feed

  • Pregunta

  • Buenos dias amigos. Estoy realizando una busqueda y tengo el codigo el cual me funciona muy bien. Es este:  

    Sql.SelectCommand.CommandText = "select * from dbo.contactos where nombre_contacto like '" & Me.txt_buscar_por_nombre.Text & "%'"

    El problema es que solo me busca la primera palabra del nombre. Es decir en la Base de datos yo tengo mi campo llamado nombre_contacto, y yo tengo a "Elvin Peralta" como dato y en el buscador pongo "Elvin" me hace la busqueda, pero si pongo "Peralta" no me muestra nada. Que tendré que cambiar en el query para que me haga la busqueda tanto de nombres como apellidos?? Espero me puedan ayudar.


    Elvin Peralta

    martes, 21 de mayo de 2013 16:41

Respuestas

  • Hola Elvin:

     Te sugiero que dejes de concatenar los valores en las consultas sql, ya que esto vulnera a tu Bd permitienedo en algun momento dado la inyeccion de codigo malicioso SQL.

     Para buscar por ambos extremos de un campo deberas de establecer el "%" en ambos lados de la asignacion.

    Sql.SelectCommand.CommandText = "select * from dbo.contactos where nombre_contacto like '%" & Me.txt_buscar_por_nombre.Text & "%'"

    Pero insisto, trabaja con parametros!

    Inyección de código SQL


    Saludos desde Monterrey, Nuevo León, México!!!


    martes, 21 de mayo de 2013 16:50

Todas las respuestas

  • Hola Elvin:

     Te sugiero que dejes de concatenar los valores en las consultas sql, ya que esto vulnera a tu Bd permitienedo en algun momento dado la inyeccion de codigo malicioso SQL.

     Para buscar por ambos extremos de un campo deberas de establecer el "%" en ambos lados de la asignacion.

    Sql.SelectCommand.CommandText = "select * from dbo.contactos where nombre_contacto like '%" & Me.txt_buscar_por_nombre.Text & "%'"

    Pero insisto, trabaja con parametros!

    Inyección de código SQL


    Saludos desde Monterrey, Nuevo León, México!!!


    martes, 21 de mayo de 2013 16:50
  • Algo como esto :

    cmd.CommandText = "SELECT personal_id AS Codigo, nombre AS Nombre FROM Personal " +
                                          "WHERE nombre LIKE '%' + @nombre + '%'";
                        cmd.Parameters.AddWithValue("@nombre", nombre);


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    martes, 21 de mayo de 2013 16:56
  • Gracias Luis, me sirvio el caracter %. Y gracias sobre el consejo de la Inyeccion SQL.

    Saludos.


    Elvin Peralta

    martes, 21 de mayo de 2013 16:56