Foros del Web » Programación para mayores de 30 ;) » .NET »

Filtrar un DataGridView VB.Net

Estas en el tema de Filtrar un DataGridView VB.Net en el foro de .NET en Foros del Web. Hola Foro... Tengo una duda... Quiero filtrar un DataDridView a medida que este tipeando en un TextBox ... Yo lo he hecho anteriormente pero usando ...
  #1 (permalink)  
Antiguo 15/06/2009, 18:17
 
Fecha de Ingreso: febrero-2009
Mensajes: 101
Antigüedad: 15 años, 2 meses
Puntos: 0
Filtrar un DataGridView VB.Net

Hola Foro...

Tengo una duda... Quiero filtrar un DataDridView a medida que este tipeando en un TextBox ... Yo lo he hecho anteriormente pero usando ADODB y era en un DataGrid (visual basic 6.0)... pero ahora no se como hacerlo... He googleado... pero no he encontrado mucho... Me dicen que use la propiedad RowFilter pero me envia el siguiente error "no es miembro de DataGridView" ... ahhh y estoy usando es SqlConnection para establecer la conexion con la bd SQL Server... Agradezco la colaboracion que me puedan brindar...

Saludos y Exitos
  #2 (permalink)  
Antiguo 16/06/2009, 08:13
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Filtrar un DataGridView VB.Net

Esta seria una forma correcto de filtrar en un datagridview debes usar el DataView

Ejm:

Código vb.net:
Ver original
  1. Dim Dv as new Dataview
  2. Dim Con as new SqlConnection
  3. Dim Com as new SqlCommand
  4. Dim Adp as new SqlDataAdapter
  5. Dim Ds as new DataSet
  6. Dim SQL as String 'Cadena para el Filtrado
  7.  
  8. ' En el load de tu formulario
  9.     Private Sub frm_filtroprueba(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  10.              try
  11.                 Con = new SqlConnecion(cadena de conexion)
  12.                 if Con.State = 0 then Con.Open()
  13.                 Com = new SqlCommand
  14.                 With Com
  15.                         .Connection = Con
  16.                         .CommandType = CommandType.Text
  17.                         .CommandText = "Select * From TuTabla"
  18.                 end With
  19.                 Adp = new SqlDataAdapter(Com)
  20.                 Adp.fill(ds,"x")
  21.                 datagridview1.DataSource = ds.tables("x") ' Rellenamos la grilla con la tabla
  22.                 Dv.Table = ds.tables("x") ' Enlazamos el dataview con la tabla devuelta
  23.              catch ex as exception
  24.                     msgbox(ex.message,48)
  25.              end try
  26.     End Sub
  27.  
  28. ' en una caja de texto en el evento TextChanged
  29. ' este evento permite filtrar cada vez que ingreses o quites caracteres en la caja de texto
  30.     Private Sub Txt_Filtro_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txt_Filtro.TextChanged
  31.               try
  32.                   SQL = "Nombre like '%"+Txt_Filtro.Text.Trim+"%'"
  33.                   Dv.RowFilter = SQL
  34.                   datagridview1.DataSource = Dv
  35.                   datagridview1.Update()
  36.               cath ex as exception
  37.                       msgbox(ex.message,48)
  38.               end try
  39.     End Sub


Nota: el codigo es solo de ejemplo tu lo puedes aplicar en programacion de 3 capas y el filtro lo puedes cambiar por el nombre de columna que quieras a la ves de agregarle varias columnas a filtrar

Ejm:

SQL = "Nombre like '%"+Txt_Filtro.Text.Trim+"%' and Apellido like '%"+Txt_Filtro.Text.Trim+"%'"
o
SQL = "Nombre = '"+Txt_Filtro.Text.Trim+"'"
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 10/12/2009, 11:19
 
Fecha de Ingreso: diciembre-2009
Mensajes: 1
Antigüedad: 14 años, 4 meses
Puntos: 0
Que tal Dradi7 oye intente hacer el filtro como lo tienes en tu codigo la conexion y todo esta bien pero no me funciona el filtro, yo intente hacer esto:

Try
SQL = "TIPO DE PRODUCTO ='m'"
Dv.RowFilter = SQL
DataGridView1.DataSource = Dv
DataGridView1.Update()
Catch ex As Exception
MsgBox(ex.Message, 48)
End Try

en el load del form para que ya iniciara filtrado pero no lo filtra
podrias ayudarme??? :?
  #4 (permalink)  
Antiguo 11/12/2009, 09:44
 
Fecha de Ingreso: octubre-2006
Mensajes: 86
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Filtrar un DataGridView VB.Net

Yo lo he echo pero con un DataTable, dentro del DataTable tu definis una columna que seria tu llave primaria, luego hay una propiedad del DataTable que se llama select() y solo defines el parametro de busqueda.

Ej.

Dim dt As New DataTable
dt = ds.tables("x")
dt.PrimaryKey = New DataColumn() {dt.Columns("TIPO DE PRODUCTO")}+

Lo que no me recuerdo bien si la sintaxis para filtrar es asi

dt.Select("TIPO DE PRODUCTO = 1")

O de esta otra forma.

dt.Select("1")
  #5 (permalink)  
Antiguo 11/12/2009, 18:16
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Filtrar un DataGridView VB.Net

Cita:
Que tal Dradi7 oye intente hacer el filtro como lo tienes en tu codigo la conexion y todo esta bien pero no me funciona el filtro, yo intente hacer esto:

Try
SQL = "TIPO DE PRODUCTO ='m'"
Tienes una columna con espacios? De ser así debes ponerla entre corchetes
Código:
SQL = "[TIPO DE PRODUCTO] ='m'"
Espero te ayude
__________________
Eduardo Peredo
Wigoin
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 19:40.