none
buscar en la base de datos nombres RRS feed

  • Pregunta

  • estimados Colegas

    tengo una base de datos de usuarios, TbUsuarios con el campo nombre, y en mi formulario de visual studio 2013 un texto nombres quiero poner un apellido ej: "molina" y me muestre en un datagridview todas las coincidencias

    gracias por su apoyo

    domingo, 22 de noviembre de 2015 15:23

Respuestas

  • Hola Weimaram,

    Para obtener resultados a razón de una coincidencia definida en un patrón podrías utilizar el predicado LIKE. La consulta debería retornar todos los nombres que contengan la cadena especificada:

    SELECT * FROM TbUsuarios WHERE (UPPER(nombre) LIKE '%' + UPPER(@nombre) + '%');

    Para cargar el objeto DataGridView debes tener un método que obtenga resultados a partir de un proveedor de datos, algo como  lo siguiente (no mencionas que lenguaje de programación ocupas, lo haré en c#):

    using (SqlConnection cn = new SqlConnection("CADENA_CONEXIÓN"))
    	{
    		DataTable dt = new DataTable();
                    string consultaSQL = "SELECT * FROM TbUsuarios WHERE (UPPER(nombre) LIKE '%' + UPPER(@nombre) + '%');";
    		SqlCommand cmd = new SqlCommand(consultaSQL, cn);
    		
    		cmd.Parameters.AddWithValue("@nombre", nombre.txt);
    			
    		SqlDataAdapter da = new SqlDataAdapter(cmd);
    		da.Fill(dt);
    		
    		DataGridView1.DataSource = dt;
    	}



    domingo, 22 de noviembre de 2015 19:11

Todas las respuestas

  • Hola Weimaram, Podrías poner información mas detallada,

    Saludos.

    domingo, 22 de noviembre de 2015 16:04
  • Hola Weimaram,

    Para obtener resultados a razón de una coincidencia definida en un patrón podrías utilizar el predicado LIKE. La consulta debería retornar todos los nombres que contengan la cadena especificada:

    SELECT * FROM TbUsuarios WHERE (UPPER(nombre) LIKE '%' + UPPER(@nombre) + '%');

    Para cargar el objeto DataGridView debes tener un método que obtenga resultados a partir de un proveedor de datos, algo como  lo siguiente (no mencionas que lenguaje de programación ocupas, lo haré en c#):

    using (SqlConnection cn = new SqlConnection("CADENA_CONEXIÓN"))
    	{
    		DataTable dt = new DataTable();
                    string consultaSQL = "SELECT * FROM TbUsuarios WHERE (UPPER(nombre) LIKE '%' + UPPER(@nombre) + '%');";
    		SqlCommand cmd = new SqlCommand(consultaSQL, cn);
    		
    		cmd.Parameters.AddWithValue("@nombre", nombre.txt);
    			
    		SqlDataAdapter da = new SqlDataAdapter(cmd);
    		da.Fill(dt);
    		
    		DataGridView1.DataSource = dt;
    	}



    domingo, 22 de noviembre de 2015 19:11
  • Saludos

    Como menciona William seria la solucion correcta, aunque es recomendable que habilites full text search, debido a que un link hace un index o table scan y no usa indices lo cual crea un performance pobre sobre este tipo de busquedas.

    domingo, 22 de noviembre de 2015 21:56