Buscar fila con BindingSource en datagridview
Tratando de hallar la solución de otra manera, me encontré con el mismo problema
Tengo una caja de texto que al poner un apellido me debe buscar la fila donde se encuentre en el datagridview, pero solamente funciona si pongo igualito el mismo apellido, pero si pongo una parte del apellido no me busca nada ...
Código:
Declaro una variable
Private BindingSource1 As Windows.Forms.BindingSource = New BindingSource
en el load del form
cn.open()
Dim da As New SqlDataAdapter("select codP AS CÓDIGO,apaP AS PATERNO,amaP AS MATERNO,nomP AS NOMBRES from personal2 where apaP LIKE'%'+'" & TextBox1.Text & "'+'%' ORDER BY apaP ASC", con)
Dim dt As New DataTable
da.Fill(dt)
' enlazar el DataTable al BindingSource
BindingSource1.DataSource = dt
' enlazar los controles
DataGridView1.DataSource = BindingSource1.DataSource
tengo esta función
Function Buscar( _
ByVal Columna As String, _
ByVal texto As String, _
ByVal BindingSource As BindingSource) As Integer
Try
' si está vacío salir y no retornar nada
If BindingSource1.DataSource Is Nothing Then
Return -1
End If
' Ejecutar el método Find pasándole los datos
Dim fila As String = BindingSource.Find(Columna.Trim, texto)
' Mover el cursor a la fila obtenida
BindingSource.Position = fila
' retornar el valor
Return fila
' errores
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try
' no retornar nada
Return -1
End Function
y ahora en mi botón de búsqueda
Dim ret As Integer = Buscar("PATERNO", TextBox1.Text, BindingSource1)
' si no se encontró ....
If ret = -1 Then
' mostrar un mensaje
MsgBox("No se encontró la fila", MsgBoxStyle.Critical)
Else
' volver a enlazar
DataGridView1.DataSource = BindingSource1
end if
El problema esta que funciona si y solo si pongo el mismo apellido