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

ID en DataGridview

Estas en el tema de ID en DataGridview en el foro de .NET en Foros del Web. Buenas, Es posible guardar el ID en un campo de DataGrid?.. Osea.. Seleccionar un item de un combobox y que al seleccionarlo se llene el ...
  #1 (permalink)  
Antiguo 12/09/2012, 10:34
 
Fecha de Ingreso: junio-2012
Ubicación: Caracas-Venezuela
Mensajes: 114
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta ID en DataGridview

Buenas,

Es posible guardar el ID en un campo de DataGrid?.. Osea.. Seleccionar un item de un combobox y que al seleccionarlo se llene el campo del datagrid con el "texto" pero que a su ves tambnn tenga el ID de dicho item seleccionado.. se entiende? Algo asi tipo lo que sucede con los combobox que solo muestran el texto pero en ellos esta el ID...

De ser posible esto que les comento.. como haria para extraer los ID de los campos del datagrid para insertarlos en una BD(Mysql)...??

Espero puedan darme una mano(otravez).. Gracias

PD: Trabajo con Windowforms - BD mysql
__________________
David`Novato
  #2 (permalink)  
Antiguo 12/09/2012, 10:45
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: ID en DataGridview

podrias usar la propiedad Tag de la celda

Ejemplo

datagridview1.Rows(0).Cells(0).Value = "Descripcion"
datagridview1.Rows(0).Cells(0).Tag= "MyID"
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 12/09/2012, 10:52
 
Fecha de Ingreso: junio-2012
Ubicación: Caracas-Venezuela
Mensajes: 114
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: ID en DataGridview

OK, te digo mas o menos como uso el DataGrid con los combobox; Selecciono todos los combo's y luego le doy a un boton llamado "Agregar a despacho" y en el lleno las celdas del Grid de la siguiente manera :
Código vb:
Ver original
  1. DataGridView1.Rows.Add(txtcantidadd.Text, cboproducto.Text, cboproveedor.Text, cboserial.Text, txtcaracteristicas.Text)

Lo que me colocas como lo implementaria ? y luego como recupero solo el ID de la celda para isertarlo en la BD? ..
__________________
David`Novato
  #4 (permalink)  
Antiguo 12/09/2012, 11:05
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: ID en DataGridview

Bueno en ese caso la forma correcta de llenar tu datagridview seria de esta manera

Código vb:
Ver original
  1. Dim total as Integer
  2. Dim row as DataGridViewRow
  3.  
  4. DataGridView1.Rows.Add(1)
  5.  
  6. total = DataGridView1.Rows.Count
  7. row = DataGridView1.Rows(total-1)
  8.  
  9. row.Cells(0).Value = txtcantidadd.Text
  10. row.Cells(1).Value = cboproducto.Text
  11. row.Cells(1).Tag = cboproducto.Value
  12. row.Cells(2).Value = cboproveedor.Text
  13. row.Cells(2).Tag = cboproveedor.Value
  14. row.Cells(3).Value = cboserial.Text
  15. row.Cells(3).Tag= cboserial.Value
  16. row.Cells(4).Value = txtcaracteristicas.Text

y para poder solamente consultaro

seria lo mismo que llenarlo

DataGridView1.Rows(0).Cells(0).Tag
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 12/09/2012, 13:09
 
Fecha de Ingreso: junio-2012
Ubicación: Caracas-Venezuela
Mensajes: 114
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: ID en DataGridview

Oye, para eliminar la fila del GRID que yo seleccionara tenia este codigo :
Código vb:
Ver original
  1. If DataGridView1.CurrentRow IsNot Nothing Then
  2.             DataGridView1.Rows.Remove(DataGridView1.CurrentRow)
  3.         End If

Pero ahora con la manera que me diste me da error..
__________________
David`Novato
  #6 (permalink)  
Antiguo 12/09/2012, 14:03
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: ID en DataGridview

Pero en que parte va este codigo
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #7 (permalink)  
Antiguo 12/09/2012, 14:19
 
Fecha de Ingreso: junio-2012
Ubicación: Caracas-Venezuela
Mensajes: 114
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: ID en DataGridview

eso va en un boton a aparte, que es por si el usuario quiere borrar los datos del producto que selecciono.......... Selecciona la fila que deseea borrar le da al boton y listo..
__________________
David`Novato
  #8 (permalink)  
Antiguo 12/09/2012, 14:56
 
Fecha de Ingreso: junio-2012
Ubicación: Caracas-Venezuela
Mensajes: 114
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: ID en DataGridview

Otro punto: es que cuando agrego la fila al GRID como que se corre un puesto.. en ves de ser Rows(0), pasa a ser Rows(1).. se entiende? los campos que lleno se corren un puesto hacia abajo.. y me queda una nueva fila en blanco de primera.. lo ideal es que quedara en orden de arriba hacia abajo los Rows..
__________________
David`Novato
  #9 (permalink)  
Antiguo 12/09/2012, 15:23
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: ID en DataGridview

En todo caso cambia esto

Código vb:
Ver original
  1. Dim total as Integer
  2. Dim row as DataGridViewRow
  3.  
  4. DataGridView1.Rows.Add(1)
  5.  
  6. total = DataGridView1.Rows.Count
  7. row = DataGridView1.Rows(total-1)
  8.  
  9. row.Cells(0).Value = txtcantidadd.Text
  10. row.Cells(1).Value = cboproducto.Text
  11. row.Cells(1).Tag = cboproducto.Value
  12. row.Cells(2).Value = cboproveedor.Text
  13. row.Cells(2).Tag = cboproveedor.Value
  14. row.Cells(3).Value = cboserial.Text
  15. row.Cells(3).Tag= cboserial.Value
  16. row.Cells(4).Value = txtcaracteristicas.Text

por esto

Código vb:
Ver original
  1. Dim row as DataGridViewRow
  2.  
  3. DataGridView1.Rows.Add(1)
  4.  
  5. total = DataGridView1.Rows.Count-1
  6.  
  7. DataGridView1.Rows(total).Cells(0).Value = txtcantidadd.Text
  8. DataGridView1.Rows(total).Cells(1).Value = cboproducto.Text
  9. DataGridView1.Rows(total).Cells(1).Tag = cboproducto.Value
  10. DataGridView1.Rows(total).Cells(2).Value = cboproveedor.Text
  11. DataGridView1.Rows(total).Cells(2).Tag = cboproveedor.Value
  12. DataGridView1.Rows(total).Cells(3).Value = cboserial.Text
  13. DataGridView1.Rows(total).Cells(3).Tag= cboserial.Value
  14. DataGridView1.Rows(total).Cells(4).Value = txtcaracteristicas.Text
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #10 (permalink)  
Antiguo 12/09/2012, 16:44
Avatar de mandrakedev  
Fecha de Ingreso: septiembre-2012
Ubicación: Guatemala
Mensajes: 14
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: ID en DataGridview

Lo que deberías de hacer es agregar el id que necesitas en la columna 0 y decirle que la oculte.
me.datagridview.columns(0).visible = false
de esta forma podras hacer uso de este id sin necesidad de que el usuario lo vea.
  #11 (permalink)  
Antiguo 13/09/2012, 08:06
 
Fecha de Ingreso: junio-2012
Ubicación: Caracas-Venezuela
Mensajes: 114
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: ID en DataGridview

Cita:
Iniciado por Dradi7 Ver Mensaje
En todo caso cambia esto

Código vb:
Ver original
  1. Dim total as Integer
  2. Dim row as DataGridViewRow
  3.  
  4. DataGridView1.Rows.Add(1)
  5.  
  6. total = DataGridView1.Rows.Count
  7. row = DataGridView1.Rows(total-1)
  8.  
  9. row.Cells(0).Value = txtcantidadd.Text
  10. row.Cells(1).Value = cboproducto.Text
  11. row.Cells(1).Tag = cboproducto.Value
  12. row.Cells(2).Value = cboproveedor.Text
  13. row.Cells(2).Tag = cboproveedor.Value
  14. row.Cells(3).Value = cboserial.Text
  15. row.Cells(3).Tag= cboserial.Value
  16. row.Cells(4).Value = txtcaracteristicas.Text

por esto

Código vb:
Ver original
  1. Dim row as DataGridViewRow
  2.  
  3. DataGridView1.Rows.Add(1)
  4.  
  5. total = DataGridView1.Rows.Count-1
  6.  
  7. DataGridView1.Rows(total).Cells(0).Value = txtcantidadd.Text
  8. DataGridView1.Rows(total).Cells(1).Value = cboproducto.Text
  9. DataGridView1.Rows(total).Cells(1).Tag = cboproducto.Value
  10. DataGridView1.Rows(total).Cells(2).Value = cboproveedor.Text
  11. DataGridView1.Rows(total).Cells(2).Tag = cboproveedor.Value
  12. DataGridView1.Rows(total).Cells(3).Value = cboserial.Text
  13. DataGridView1.Rows(total).Cells(3).Tag= cboserial.Value
  14. DataGridView1.Rows(total).Cells(4).Value = txtcaracteristicas.Text
Creo que esta mal estructurado lo que me dices que ponga..
__________________
David`Novato
  #12 (permalink)  
Antiguo 14/09/2012, 10:37
 
Fecha de Ingreso: junio-2012
Ubicación: Caracas-Venezuela
Mensajes: 114
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: ID en DataGridview

Dradi7 ??????
__________________
David`Novato
  #13 (permalink)  
Antiguo 14/09/2012, 12:17
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: ID en DataGridview

Bueno el código que te puse primero esta bien lo que sucede es que tienes habilitado la opcion AllowUserToAddRows en TRUE es por esto el motivo que se salta de linea y te genera error al agregar

PRIMERA OPCION = DESHABILITA EL AllowUserToAddRows Y TODO TE VA A SALIR OK

Código vb:
Ver original
  1. Dim total as Integer
  2. Dim row as DataGridViewRow
  3.  
  4. DataGridView1.Rows.Add(1)
  5.  
  6. total = DataGridView1.Rows.Count
  7. row = DataGridView1.Rows(total-1)
  8.  
  9. row.Cells(0).Value = txtcantidadd.Text
  10. row.Cells(1).Value = cboproducto.Text
  11. row.Cells(1).Tag = cboproducto.Value
  12. row.Cells(2).Value = cboproveedor.Text
  13. row.Cells(2).Tag = cboproveedor.Value
  14. row.Cells(3).Value = cboserial.Text
  15. row.Cells(3).Tag= cboserial.Value
  16. row.Cells(4).Value = txtcaracteristicas.Text

SEGUNDA OPCION = DEJA EL AllowUserToAddRows TAL COMO ESTA ES DECIR EN TRUE

Código vb:
Ver original
  1. Dim total as Integer
  2. Dim row as DataGridViewRow
  3. *
  4. total = DataGridView1.Rows.Count
  5.  
  6. DataGridView1.Rows.Add(1)
  7.  
  8. row = DataGridView1.Rows(total-1)
  9. *
  10. row.Cells(0).Value = txtcantidadd.Text
  11. row.Cells(1).Value = cboproducto.Text
  12. row.Cells(1).Tag = cboproducto.Value
  13. row.Cells(2).Value = cboproveedor.Text
  14. row.Cells(2).Tag = cboproveedor.Value
  15. row.Cells(3).Value = cboserial.Text
  16. row.Cells(3).Tag= cboserial.Value
  17. row.Cells(4).Value = txtcaracteristicas.Text

Si te das cuenta solo he cambiado la posicion del total y listo

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #14 (permalink)  
Antiguo 14/09/2012, 13:28
 
Fecha de Ingreso: junio-2012
Ubicación: Caracas-Venezuela
Mensajes: 114
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: ID en DataGridview

Ok Dradi7, ahora si funciona correctamente, Muchas gracias.. lo que olvidaste mencionar es como hacer para elminar la fila que yo seleccione

Cita:
Iniciado por DavidNovato Ver Mensaje
Código vb:
Ver original
  1. If DataGridView1.CurrentRow IsNot Nothing Then
  2.             DataGridView1.Rows.Remove(DataGridView1.CurrentRow)
  3.         End If
De esta manera es que yo eliminaba la fila que yo quisiera antes... ahora con el codigo que m diste; esta linea para eliminar no funciona
__________________
David`Novato
  #15 (permalink)  
Antiguo 15/09/2012, 18:53
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: ID en DataGridview

estas seguro yo he probado y me funciona correctamente como te mencione antes el problema puede ser el AllowUserToAddRows
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #16 (permalink)  
Antiguo 17/09/2012, 09:15
 
Fecha de Ingreso: junio-2012
Ubicación: Caracas-Venezuela
Mensajes: 114
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: ID en DataGridview

Listo ya funciona.. deje solo
Código vb:
Ver original
  1. DataGridView1.Rows.Remove(DataGridView1.CurrentRow)
.. Gracias por tu ayuda
__________________
David`Novato

Etiquetas: datagridview, mysql, sql
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 16:55.