Fila en datagridview en visual 2010

Tengo en un form: un datagridview, un textbox1 y un botón donde al consultar por apellido me señala la fila en el datagridview donde se encuentra el registro, claro funciona si solo si pongo el apellido completo es decir, si pongo castro me selecciona la fila donde se encuentra el registro, pero si pongo castr

No me indica nada, lo que deseo es que al colocar solo la letra c me debe ya seleccionar la fila con los apellidos que comienzen con la letra c, te dejo el codigo para ayuda por favor

Tengo una funcion

1 Respuesta

Respuesta
1

No enviaste el código... enviame el código a ver como te puedo ayudar, ¿qué version de .net estas usando?

bueno parece que no llego, ahí va: tengo esta función

Public Function BuscarEnDataGrid(ByVal TextoABuscar As String, ByRef datagrid As DataGridView) As Boolean
'función para buscar fila en datagrid
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)) ---el 1 indica la 2da

columna del datag..
Where clave = TextoABuscar
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

y con este procedimiento de consulta

Public Sub consultar_personal()
'procedimiento para consultar registro
conectar()
cmd = New SqlCommand
dt.Clear()
cn.Open()
cmd.CommandText = "select * from personal2 where apaP LIKE'%'+'" & TextBox1.Text & "'+'%'"
cmd.Connection = con
da.SelectCommand = cmd
da.Fill(dt)
BuscarEnDataGrid(TextBox1.Text.ToUpper, DataGridView1)
cn.Close()
End Sub

****con este procedimiento realizo la consulta desde el botón , fijate que ya estoy utilizando un like para que me busque por letra o letras

**al cargar el form tengo un procedimientio que me carga los registros en el datagrididview

Private Sub mostrar_personal()

.....

cmd.CommandText = "select codP AS CÓDIGO,apaP AS PATERNO,amaP AS MATERNO,nomP AS NOMBRES from personal2 ORDER BY apaP ASC"

...

end sub

como te decía solo funciona cuando coloco el apellido completo

Lo que sucede es que estas preguntando si clave = textoBuscar, por eso solo te funciona si son exactamente iguales o completos.

Para hacer lo que deseas seria mas o menos así:

where Clave.instr(TextoBuscar) >= 0

Lo que hace InStr es que te devuelve la intentar en la cual encontró el textobuscar, si esto es mayo o igual a cero, quiere decir que lo encontró, si no lo encuentra devuelve un -1.

hola gracias por responder cambie la fila que me dijiste pero me sale este error

Where (clave.instr(TextoABuscar) >= 0)

error1

clave.instr -----instr no es un miembro de string

clave.indexof

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas