none
select con like en mysql RRS feed

  • Pregunta

  • Hola tengo el sigueinte codigo quiero buscar concatenado tanto codigo como nombre de mi base de datos articulos y me aparece en blanco mi datagridview.

    Alguien sabe que puede ser? Adjunto el codigo debajo.

    Si utilizo OR en el select me muestra, pero invidivualmente, o codigo o nombre..

    Saludos

    Private Sub TextBox1_TextChanged_1(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
            Dim ConStr As String
            ConStr = "server=localhost;User Id=root;database=dap"
            'variable de conexión
            Dim Con As New MySqlConnection(ConStr)
            'variable dataset 
            Dim Ds As New DataSet
            'variable tabla 
            Dim Tabla As New DataTable
            'adaptador que sirve de enlace intermedio entre la aplicación y la 
            'base de datos 
            '                              
            Dim Da As New MySqlDataAdapter("Select * from articulos where Nombre like '" & TextBox1.Text & "%'" & " AND Codigo like '" & TextBox1.Text & "%'", Con)
            'capturamos errores 
            Try
                'ejecutamos la query que tiene el DataAdapter 
                Dim Cmd As New MySqlCommandBuilder(Da)
                'llenamos la tabla 
                Da.Fill(Tabla)
                'mostramos datos 
                DataGridView1.DataSource = Tabla
            Catch ex As MySqlException
                'en caso de error 
                MsgBox(ex.Message)
            Finally
                'finalmente eliminamos objetos de memoria 
                Con = Nothing
                Ds = Nothing
                Tabla = Nothing
                Da = Nothing
            End Try
        End Sub

    viernes, 7 de septiembre de 2012 18:06

Respuestas

  • lo primero que podria decir es que no concatenes en un string para armar la query, usa parametros

    despues el uso del OR es correcto, filtras por cualquier campo que se aproxime a lo que escribes en el textbox, salvo que definas dosn textbox diferentes uno para cada campo, pero si es uno solo el uso del OR es correcto

    	Dim query As String = "Select * from articulos where Nombre like ?filtro + '%' OR Codigo like ?filtro + '%'"
    	Dim cmd As New MySqlCommand(query, Con )
    	cmd.Parameters.AddwithValue("?filtro", TextBox1.Text)
    	
    	Dim Da As New MySqlDataAdapter(cmd)
    	Da.Fill(Tabla)
    
    	DataGridView1.DataSource = Tabla

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Mauricio Hamak lunes, 10 de septiembre de 2012 20:05
    sábado, 8 de septiembre de 2012 23:05

Todas las respuestas

  • lo primero que podria decir es que no concatenes en un string para armar la query, usa parametros

    despues el uso del OR es correcto, filtras por cualquier campo que se aproxime a lo que escribes en el textbox, salvo que definas dosn textbox diferentes uno para cada campo, pero si es uno solo el uso del OR es correcto

    	Dim query As String = "Select * from articulos where Nombre like ?filtro + '%' OR Codigo like ?filtro + '%'"
    	Dim cmd As New MySqlCommand(query, Con )
    	cmd.Parameters.AddwithValue("?filtro", TextBox1.Text)
    	
    	Dim Da As New MySqlDataAdapter(cmd)
    	Da.Fill(Tabla)
    
    	DataGridView1.DataSource = Tabla

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Mauricio Hamak lunes, 10 de septiembre de 2012 20:05
    sábado, 8 de septiembre de 2012 23:05
  • Hola leandro muchas gracias, hay alguna forma de pasar el mismo textbox como parametro pero que haga busquedas multiples de varios campos de mi misma tabla?

    por ej buscar articulo "19600" color "rojo" y que vaya buscando coincidencias? porque este codigo acepta o codigo o nombre ene ste caso, pero no concatenado las dos.

    Saludos

    miércoles, 12 de septiembre de 2012 0:23