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

[SOLUCIONADO] Filtro en datagridview con textbox

Estas en el tema de Filtro en datagridview con textbox en el foro de .NET en Foros del Web. Hola amigos, tengo un datagridview en VB.NET 2010 enlazado a una BD en sql 2008 quiero generar un filtro que mediante escriba en un textbox ...
  #1 (permalink)  
Antiguo 14/05/2013, 18:59
 
Fecha de Ingreso: abril-2013
Ubicación: Managua, Nicaragua
Mensajes: 13
Antigüedad: 11 años
Puntos: 1
Pregunta Filtro en datagridview con textbox

Hola amigos,

tengo un datagridview en VB.NET 2010 enlazado a una BD en sql 2008 quiero generar un filtro que mediante escriba en un textbox una letra, me vaya buscando en el datagrid la informacion. Por ejemplo: Pongo en el textbox: Pantalón Lee y en el datagridview se muestran los datos referentes a Pantalón Lee. Lo cual puedo realizar con el primer campo que es pantalón, pero si quiero a continuación seguir escribiendo para buscar el dato del segundo campo que sería Lee pone en blanco el datagridview

aca les dejo el código:

' con esta función lleno el grid

Private Sub llenargrid()

sql = "Select * from Articulos"
conectar()
da = New SqlClient.SqlDataAdapter(sql, conexion)
cb = New SqlClient.SqlCommandBuilder(da)
ds = New DataSet
da.Fill(ds, "Articulos")
DgvListaEdicion.DataSource = ds
DgvListaEdicion.DataMember = "Articulos"
conexion.Close()

End Sub

Private Sub FrmIngresoCamisas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

llenargrid()

End Sub

' con esta función busco mediante el textbox

Private Sub Aplicar_Filtro()


sql = ("Select * From Articulos WHERE tiporopa LIKE '%" & TxtBuscar.Text.Trim & "%'")
conectar()
da = New SqlClient.SqlDataAdapter(sql, conexion)
cb = New SqlClient.SqlCommandBuilder(da)
ds = New DataSet
da.Fill(ds, "tiporopa")
DgvListaEdicion.DataSource = ds
DgvListaEdicion.DataMember = "tiporopa"
conexion.Close()
Return

End Sub

Private Sub TxtBuscar_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtBuscar.TextChanged

Aplicar_Filtro()

End Sub

Última edición por memocaceres; 15/05/2013 a las 08:31
  #2 (permalink)  
Antiguo 15/05/2013, 14:21
 
Fecha de Ingreso: abril-2013
Ubicación: Lima
Mensajes: 83
Antigüedad: 11 años
Puntos: 1
Respuesta: Filtro en datagridview con textbox

Pon un If debajo de tu sql de llenar datagrid

algo asi

Cita:
SqlM = "Select loccod,Locnom,locdir,locdis,locpro,Locdpt,locpai from Tloca "
If Txt_DATO01.Text <> "" Then SqlM = SqlM & " where Locnom like '" & Trim(Txt_DATO01.Text) & "%'"
eso es para buscar locales por nombre
el TXT_dato01 es el textbox donde pones lo que quieres buscar
  #3 (permalink)  
Antiguo 15/05/2013, 15:33
 
Fecha de Ingreso: abril-2013
Ubicación: Managua, Nicaragua
Mensajes: 13
Antigüedad: 11 años
Puntos: 1
Pregunta Respuesta: Filtro en datagridview con textbox

Cita:
Iniciado por erickrpv Ver Mensaje
Pon un If debajo de tu sql de llenar datagrid

algo asi



eso es para buscar locales por nombre
el TXT_dato01 es el textbox donde pones lo que quieres buscar

Gracias de mucha ayuda tu aporte, pero ahora tengo el problema de que deseo que en el mismo textbox se realice la busqueda del siguiente campo por lo que puse el codigo asi:

sql = ("SELECT * FROM cantidades WHERE categoría + marca + estilo + color + talla LIKE '%" + TxtBuscar.Text.Trim + "%'")


lo hace pero el problema es que debo escribir todo seguido de lo contrario no realiza la búsqueda por ejemplo debo escribir:

camisaarrow para que vaya filtrando todas las categorias camisas marca arrow y desearia hacerlo separado ej: camisa arrow

Última edición por memocaceres; 15/05/2013 a las 15:41
  #4 (permalink)  
Antiguo 15/05/2013, 16:30
 
Fecha de Ingreso: abril-2013
Ubicación: Lima
Mensajes: 83
Antigüedad: 11 años
Puntos: 1
Respuesta: Filtro en datagridview con textbox

sepáralo con un (campo1) + ' ' + (campo2)
  #5 (permalink)  
Antiguo 15/05/2013, 17:09
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: Filtro en datagridview con textbox

Hola que tal, bueno yo e usado las consultas por medio de Linq y listas y con eso muestro la información en un grid.

Código C#:
Ver original
  1. var Grid = from lista_Origen in Alias
  2.                             where ( Alias.Campo_Consultar== Campo_Consultar|| Alias.Campo_Consultar.ToString().Substring(0, Longitud_A_Consultar) == Campo_Consultar.ToString())
  3. orderby Alias.Campo_Consultar
  4. select Alias;
  #6 (permalink)  
Antiguo 15/05/2013, 18:55
Avatar de emmax  
Fecha de Ingreso: agosto-2010
Ubicación: Sonora
Mensajes: 172
Antigüedad: 13 años, 8 meses
Puntos: 8
Respuesta: Filtro en datagridview con textbox

Hola, no se si te sirva pero yo tengo algo parecido en unos programas que hice y lo manejo de la siguiente manera, lleno el Grid con todos los datos que tengo en la Bd, ejemplo articulos, y con una funcion que hice hago una busqueda dentro del mismo grid, no se si te sirva o a lo mejor haciendole algunos cambios puedes adaptarlo a lo que necesitas, te dejo la funcion.

Código VB.NET:
Ver original
  1. Public Function Buscar(ByVal TextoABuscar As String, ByVal Columna As String, ByRef grid As DataGridView) As Boolean
  2.         Dim encontrado As Boolean = False
  3.         If TextoABuscar = String.Empty Then Return False
  4.         If grid.RowCount = 0 Then Return False
  5.         grid.ClearSelection()
  6.         If Columna = String.Empty Then
  7.             For Each row As DataGridViewRow In grid.Rows
  8.                 For Each cell As DataGridViewCell In row.Cells
  9.                     If cell.Value.ToString() = TextoABuscar Then
  10.                         row.Selected = True
  11.                         Return True
  12.                     End If
  13.                 Next
  14.             Next
  15.         Else
  16.             For Each row As DataGridViewRow In grid.Rows
  17.                 If row.IsNewRow Then Return False
  18.                 If row.Cells(Columna).Value.ToString() = TextoABuscar Then
  19.                     row.Selected = True
  20.                     Return True
  21.                 End If
  22.             Next
  23.         End If
  24.         Return encontrado
  25.     End Function
  #7 (permalink)  
Antiguo 17/05/2013, 16:57
 
Fecha de Ingreso: abril-2013
Ubicación: Managua, Nicaragua
Mensajes: 13
Antigüedad: 11 años
Puntos: 1
De acuerdo Respuesta: Filtro en datagridview con textbox

Cita:
Iniciado por erickrpv Ver Mensaje
sepáralo con un (campo1) + ' ' + (campo2)
Gracias Erickrpv buen aporte, te doy 10 puntos.
  #8 (permalink)  
Antiguo 17/05/2013, 17:47
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: Filtro en datagridview con textbox

Hola que tal, que bueno que te sirvió la solución, pero que pasa si el nombre aumenta

Ejemplo:

Pantalón
Pantalón Lee
Pantalón Lee Negro
Pantalón Lee Negro 501
etc
etc

Vas a poner cuantos campos, para hacer la consulta? Puesto que no es dinámica la forma en la que lo piensas hacer, se me hace que tiene una falla un poco grande, jejeje

En estos caso es mejor el uso de las listas junto con Linq, es lo mas optimo. Ademas la consulta se mantiene en memoria y solo se hace una única consulta y ya, la búsqueda es mas rápida. Yo lo e hecho en C# y creeme es lo mejor

Etiquetas: vb
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




La zona horaria es GMT -6. Ahora son las 09:12.