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

Buscar en datagridview por clave primaria

Estas en el tema de Buscar en datagridview por clave primaria en el foro de .NET en Foros del Web. Hola! ¿como puedo buscar un registro dentro de un datagridview por la clave primaria, siendo ésta de más de un campo? es que todos los ...
  #1 (permalink)  
Antiguo 03/11/2009, 04:37
 
Fecha de Ingreso: septiembre-2009
Ubicación: Galicia
Mensajes: 111
Antigüedad: 14 años, 7 meses
Puntos: 3
Buscar en datagridview por clave primaria

Hola!

¿como puedo buscar un registro dentro de un datagridview por la clave primaria, siendo ésta de más de un campo?

es que todos los ejemplos que he encontrado son para buscar por un campo (ejemplo, http://www.recursosvisualbasic.com.a...tagridview.htm) pero a mi no me vale porque tengo que buscar por 3 valores de la fila.

También he visto la opción "select" del dataset que es justo lo que necesito, ya que ahí puedo construir la cadena de filtro que quiera. El problema en este caso es que yo necesito el indice de la fila del grid en la que está ese registro, y si he cambiado la ordenacion del grid (pulsando en el heather de una columna, por ejemplo) el indice del grid no va a coincidir con el indice del dataset.

Lo ideal sería la propiedad "select" en el objeto grid. ¿existe eso? ¿alguna otra manera?

Saludos y gracias de antemano
  #2 (permalink)  
Antiguo 03/11/2009, 08:13
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Buscar en datagridview por clave primaria

Como estás llenando la grilla? Si es con Datatables puedes usar un dataview
Código vb.net:
Ver original
  1. Dim mi_dataview As New DataView(DataTable)
  2. mi_dataview.Filter = "Campo1 ='"+ valor1 +"' OR Campo2 ='" + valor2 + "'"
  3. DataGridView1.DataSource = mi_dataview

Si estás usando generics tendrás que usar el método FindAll().

Espero te ayude
__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 03/11/2009, 09:03
 
Fecha de Ingreso: septiembre-2009
Ubicación: Galicia
Mensajes: 111
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Buscar en datagridview por clave primaria

Hola!

el grid lo lleno con un dataset. Y en cuanto a lo del dataview, yo no quiero filtrar el datagrid, simplemente quiero saber el indice de la fila en la que está el elemento que busco. Con el código que pones, muestro el grid filtrado ¿me equivoco?

Saludos y gracias por contestar!!
  #4 (permalink)  
Antiguo 03/11/2009, 09:28
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Buscar en datagridview por clave primaria

Ah bue... ahora si entendí, al menos eso creo :P

Quieres el índice que le asigna el datagrid? Pero tendrías el mismo "problema" que mencionas con el dataset al ordenar la columna porque el datagridview vuelve a asignarle los índices.
Si tienes el producto "Zanahoria" en el primer lugar te devolverá el índice 0, si lo ordenas en forma ascendente te devolverá el índice 49(suponiendo que la grilla tenga 50 filas). Al menos eso es lo que me ha pasado siempre.
Te dejo el código.
Código vb.net:
Ver original
  1. For Each fila As DataGridViewRow In Me.DataGridView1.Rows
  2.             If fila.Cells(1).Value.ToString() = "Chocolade" Then
  3.                 MessageBox.Show(Me.DataGridView1.Rows.IndexOf(fila).ToString())
  4.             End If
  5.         Next
Recorres las filas y si encuentra coincidencias con el método IndexOf te muestra el índice.
Espero te ayude
__________________
Eduardo Peredo
Wigoin
  #5 (permalink)  
Antiguo 03/11/2009, 11:15
 
Fecha de Ingreso: septiembre-2009
Ubicación: Galicia
Mensajes: 111
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Buscar en datagridview por clave primaria

Hola!

es que eso es exactamente lo que quiero que me devuelva: si la zanahoria está en el 0 quiero el 0 y si está en el 49 quiero el 49.

Y en cuanto al código que pones, me podría valer para hacer la busqueda por varios campos, poniendo algo como

if ... AND ... AND ... then

end if

Lo pruebo y te digo algo.Saludos y gracias !!!
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 15:24.