none
filtro de dataview no me funciona RRS feed

  • Pregunta

  • hola, así a simple vista...
    ¿ veis algún error en este código?
    DataViewBuscar.RowFilter = "nombre ='" & txtBuscar.Text & "'"

    se supone que debería buscar todos los registros cuyo campo 'nombre' coincida con el contenido de txtBuscar.Text, ¿o no?

    bueno un saludo, gracias x vuestra ayuda!
    miércoles, 6 de junio de 2007 0:24

Todas las respuestas

  •  

    Hola,

     

    La linea esta bien...

     

    Tal vez el problema esta en otro sitio... por ejemplo...

     

    ¿refrescas bien el dataview?

     

    ¿has comprobado que txtBuscar.Text no venga vacio, a lo mejor por culpa de no tener activado el viewstate?

     

    ¿el ColumnName conincide con "nombre", tal que utilizaste un alias en la consulta o utilizas un xsd con diferente nombre de columna?

     

    Se me ocurren esas explicaciones.

     

    Mira a ver y nos cuentas.

     

    Si por desgracia no es nada de eso... ponos una porcion mas grande de codigo

     

    Un saludo.

    miércoles, 6 de junio de 2007 6:55
    Moderador
  • Prueba así:

     

    Code Snippet

    private void txtCodigo_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)

    {

        string sNomColumna = dataTabla.Columns[0].ColumnName;

        string RowFilter = sNomColumna+" LIKE '"+this.txtCodigo.Text+"*'";

        DataView dataView = new DataView(dataTabla,RowFilter,sNomColumna,DataViewRowState.CurrentRows);

        dataGrid1.DataSource = dataView;

    }

     

    Salu2

     

    Colabora con el foro: Si la respuesta te es de utilidad marca la pregunta como respondida.

    Luis Ruiz Pavón

    MCP

    Blog: http://geeks.ms/blogs/lruiz

    miércoles, 6 de junio de 2007 10:24
  • este es el codigo, se trata de un pequeño buscador en un winform.

    La tercera opción ( DataViewBuscar.RowFilter = "nombre like '*" & txtBuscar.Text & "*'") funciona perfectamente osea que no es problema del textbox.

    Tampoco es problema de que no se cumpla la condición (else) ya que intercambiando las instrucciones de posición (es decir poniendo DataViewBuscar.RowFilter = "nombre = '" & txtBuscar.Text & "'" en el else if pues sigue sin funcionar, y encambio la DataViewBuscar.RowFilter = "nombre like '*" & txtBuscar.Text & "*'" puesta en el else sí que funciona,

     En resumen que no es del textbox ni del if-elseif-else.

        Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscar.Click
            DataViewBuscar.Table = DataSet.Tables("stock")
            If txtBuscar.Text.Length Then
                Dim ArrayBuscar() As String = Split(txtBuscar.Text)
                Dim StringBuscar As String
                If rdbTodasLasPalabras.Checked Then
                    StringBuscar = [String].Join("','", ArrayBuscar)
                    MsgBox(StringBuscar)
                    DataViewBuscar.RowFilter = "nombre in ('" & StringBuscar & "')"
                ElseIf rdbCualquierFragmento.Checked Then
                    DataViewBuscar.RowFilter = "nombre like '*" & txtBuscar.Text & "*'"
                Else
                    DataViewBuscar.RowFilter = "nombre = '" & txtBuscar.Text & "'"
                End If
            End If
            DataGrid.DataSource = DataViewBuscar
        End Sub
    jueves, 7 de junio de 2007 0:09
  • perdón, funcionaba bien, lo que estaba mal era yo, es decir que estaba haciendo mal la búsqueda,

    perdón por las molestias, y muchas gracias x la ayuda

    sl2.
    • Propuesto como respuesta drios viernes, 9 de marzo de 2012 7:53
    • Votado como útil drios viernes, 9 de marzo de 2012 7:53
    domingo, 10 de junio de 2007 23:06