none
Filtro en DATATABLE RRS feed

  • Pregunta

  • Buenas, por favor, en este procedimiento me podeis echar un cable para hacer un filtro sin tener que aplicarlo en el procedimiento almacenado? Es decir , seria realizar el filtro directamente sobre el datatable.

    Creo que pon tablainforme.select("filtro") debería de funcionarme, pero no lo consigo.

      DataGridView1.Visible = True
            DataGridView1.Columns.Clear()
    
            Dim con As New SqlClient.SqlConnection
            Dim comm As New SqlClient.SqlCommand
            Dim adp As New SqlClient.SqlDataAdapter
            Dim TablaInforme As New DataTable  
    
            con.ConnectionString = My.Settings.dcs.ToString
            con.Open()
            comm.CommandText = ("tablastocks")
            comm.CommandType = CommandType.StoredProcedure
            comm.Connection = con
            comm.Parameters.Clear()
    
            adp.SelectCommand = comm
            TablaInforme.Clear()
            adp.Fill(TablaInforme)
    
            DataGridView1.AutoGenerateColumns = True
            DataGridView1.DataSource = TablaInforme
    
    

    domingo, 5 de junio de 2016 19:01

Respuestas

  • Creo que pon tablainforme.select("filtro") debería de funcionarme, pero no lo consigo

    Sí, funcionará con tablainforme.select("filtro") ... PERO ese select no devuelve un databable sino un array de datarows, que probablemente no es lo que querías.

    Dado que el resultado lo quieres para asignárselo a un DataGridView, es más sencillo que el filtro lo hagas interponiendo un DataView:

    Dim dv as DataView = TablaInforme.DefaultView

    dv.RowFilter = "columna1=1234"

    DataGirdView1.DataSource = dv

    • Propuesto como respuesta Sergio Parra domingo, 5 de junio de 2016 19:58
    • Marcado como respuesta mayoko lunes, 6 de junio de 2016 9:45
    domingo, 5 de junio de 2016 19:32

Todas las respuestas

  • Creo que pon tablainforme.select("filtro") debería de funcionarme, pero no lo consigo

    Sí, funcionará con tablainforme.select("filtro") ... PERO ese select no devuelve un databable sino un array de datarows, que probablemente no es lo que querías.

    Dado que el resultado lo quieres para asignárselo a un DataGridView, es más sencillo que el filtro lo hagas interponiendo un DataView:

    Dim dv as DataView = TablaInforme.DefaultView

    dv.RowFilter = "columna1=1234"

    DataGirdView1.DataSource = dv

    • Propuesto como respuesta Sergio Parra domingo, 5 de junio de 2016 19:58
    • Marcado como respuesta mayoko lunes, 6 de junio de 2016 9:45
    domingo, 5 de junio de 2016 19:32
  • Muchisimas gracias! Me fue de muchísima ayuda ;)
    lunes, 6 de junio de 2016 9:45