Buscar fila en datagridview

De la solución anterior he tenido ciertos percances que espero que con tu gentileza me puedas ayudar

Public Function BuscarEnDataGrid(ByVal TextoABuscar As String, ByRef datagrid As DataGridView) As Boolean
' cambie esta fila --Where(clave = TextoABuscar)
'por --- Where (clave.LastIndexOf(TextoABuscar) >= 0)
Try
Dim encontrado As Boolean = False
datagrid.ClearSelection()
If TextoABuscar = String.Empty Then Return False
Dim rows As List(Of DataGridViewRow) = (From item In datagrid.Rows.Cast(Of DataGridViewRow)()
Let clave = Convert.ToString(If(item.Cells(1).Value, String.Empty))
Where (clave.LastIndexOf(TextoABuscar) >= 0) ----código agregado
Select item).ToList
For Each row As DataGridViewRow In rows
row.Selected = True
datagrid.CurrentCell = row.Cells(0)
Next
If rows.Count > 0 Then
encontrado = True
End If
Return encontrado
Catch ex As Exception
MsgBox("Se ha producido la siguiente excepción: " + vbCrLf + _
ex.Message, CType(MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, MsgBoxStyle), "Error...")
Return False
End Try
End Function
Lo que sucede es que solamente busca ciertos apellidos pero no a todos

Ejemplo

Si en mi caja pongo "mena" si me busca la fila y se acerca al apellido "menachos"

Pero si con otros no, si pongo huaman no me lo busca a pesar de que existe "huaman"

Y así sucede con otras letras, ¿no con todas pero con algunas si por que sera?

1 Respuesta

Respuesta
1

No será que esta buscando desde la fila en donde estas ubicado hacia abajo, ¿y los apellidos que estas buscando se encuentran antes de donde estas ubicado?

no al cargar el form busco el apellido "huaman" por ejemplo y no lo busca(a pesar que la fila se encuentra en la primera posicion) no se que pasa solo en algunos casos funciona en otros no

¿Por qué mejor no haces esa búsqueda en la tabla de la base de datos?

O sea envías esa consulta a la base de datos y usas en el where algo como:

"Select * from Tutabla where campo like '%" & txtValorBuscar.text & "%' "

Y con el resultado llenas la grilla.

hola , si era otra opción filtrar la grilla , pero trato de hacerlo de esta manera, por otro lado, alguna idea de usar esta propiedad en el datagridview en la función que esta definido arriba

' Visualizar la fila al comienzo de la grilla
datagrdiview1.FirstDisplayedScrollingRowIndex

No estoy seguro para que la utilizas, pero aquí te aclaran para que sirve esa propiedad:

<a>http://msdn.microsoft.com/es-es/library/system.windows.forms.datagridview.firstdisplayedscrollingrowindex.aspx</a>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas