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

Pasar Fila de un Datagrid a Otro

Estas en el tema de Pasar Fila de un Datagrid a Otro en el foro de .NET en Foros del Web. Hola ,Necesito pasar una o mas Fila de un DataGrid a otro lo he estado haciendo pero me marca un error ahi les mando mi ...
  #1 (permalink)  
Antiguo 10/01/2011, 11:06
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Pasar Fila de un Datagrid a Otro

Hola ,Necesito pasar una o mas Fila de un DataGrid a otro lo he estado haciendo pero me marca un error ahi les mando mi codigo.
try

For Each drw as DataRow In dtb.Rows
dtb2.Rows.Add(Valores(drw))
dtb.Rows.Remove(drw)
Next >>> aqui me señala el error "Colección modificada; la operación de enumeración no se puede ejecutar."

Catch ex As Exception
Throw ex
End Try
End Sub
Function Valores(ByVal fila As DataRow) As String()
Dim contenido(dtb.Columns.Count - 1) As String
For x As Integer = 0 To contenido.Length - 1
contenido(x) = fila.Item(x)
Next
Return contenido
End Function

originalmente escontre este codigo pero para el DataGridview hice algunos cambios pero me muestra el error que esta en el For each. gracias de antemano
  #2 (permalink)  
Antiguo 10/01/2011, 11:18
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Pasar Fila de un Datagrid a Otro

necesitas pasar todos las filas ? porque tu error si bien no me equivoco te genera porque haces un recorrido a una dimension ya definida de filas y al momento de eliminar lo que haces es cambiar su valor y por eso lo del error, no seria mejor que copies todo al otro datagrid y al final borres el datagrid anterior?
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 10/01/2011, 11:20
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: Mover Fila de un Datagrid a Otro

gracias por Reponder , lo que necesito es Mover Filas ya sea una , dos ,etc
gracias de antemano

Última edición por Erick21; 10/01/2011 a las 11:28
  #4 (permalink)  
Antiguo 10/01/2011, 11:32
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Pasar Fila de un Datagrid a Otro

te dejo este link, chekealo Espero te sea de utilidad. Saludos!

Copiar o mover filas de un DG a otro DG
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #5 (permalink)  
Antiguo 10/01/2011, 11:38
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: Pasar Fila de un Datagrid a Otro

Gracias , pues da la casualidad que con ese ejemplo realize el codigo que te muestro , te agradeceria si me ayudas con el codigo.. disculpa por las molestias.
  #6 (permalink)  
Antiguo 10/01/2011, 11:53
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Pasar Fila de un Datagrid a Otro

tu datagrid tiene un command field de seleccion? o le agregar un check a tus filas ?
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #7 (permalink)  
Antiguo 10/01/2011, 13:02
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: Pasar Fila de un Datagrid a Otro

Hola Gracias por Responder, el codigo de mi datagrid es el siguiente:
private dtb As DataTable
Private drw As DataRow
Private dst As New DataSet
dtb = dst.Tables.Add
With dtb.Columns
.Add("Codigo", GetType(System.Int32))
.Add("Insumo", GetType(System.String))
.Add("Cantidad", GetType(System.Int32))
.Add("Unidad De Medida", GetType(System.String))
.Add("Precio", GetType(System.Single))
End With
dgdlista.DataSource = dtb

tal vez olvide mencionar que trabajo en VB.net 2005. gracias otra vez
  #8 (permalink)  
Antiguo 10/01/2011, 23:25
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: Pasar Fila de un Datagrid a Otro

por favor necesito ayuda con esto en algo estoy fallando pero no encuentro el error. gracias otra vez
  #9 (permalink)  
Antiguo 11/01/2011, 07:28
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Pasar Fila de un Datagrid a Otro

Por lo que estoy viendo son datatables :S quieres pasar valores de un datatable a otro para luego este datatable almacenrlo en un datagrid? si estoy bien dimelo xq no me queda muy claro tu code
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #10 (permalink)  
Antiguo 11/01/2011, 07:38
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Pasar Fila de un Datagrid a Otro

Prueba haciendo esto :

Código vb:
Ver original
  1. Function ObtenerValoresFila(ByVal fila As DataRow) As String()
  2.         Dim Contenido(dt.Columns.Count() - 1) As String
  3.         For x As Integer = 0 To (Contenido.Length() - 1)
  4.             Contenido(x) = fila.Item(x).ToString()
  5.         Next
  6.         Return Contenido
  7.     End Function
  8.  
  9.     Sub mover()
  10.         For Each Seleccion As DataRow In dt.Select
  11.             dt2.Rows.Add(ObtenerValoresFila(Seleccion))
  12.             dt.Rows.Remove(Seleccion)
  13.         Next
  14.     End Sub
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #11 (permalink)  
Antiguo 11/01/2011, 11:12
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: Pasar Fila de un Datagrid a Otro

gracias por responder, usa el codigo que me muestras pero me sale el mismo error
"Colección modificada; la operación de enumeración no se puede ejecutar", lo he estado analisando y no encuentro la respuesta me estoy volviendo loco
agradeceria toda la ayuda posible.

Última edición por Erick21; 11/01/2011 a las 11:24
  #12 (permalink)  
Antiguo 11/01/2011, 11:39
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Pasar Fila de un Datagrid a Otro

mmm otra cosa que puedes hacer es primero copias las filas seleccionadas y a la vez en un arreglo guardas la posicion de las seleccionadas, una vez terminado eso eliminas cada uno para que no se modifique en el recorrido del for each
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #13 (permalink)  
Antiguo 11/01/2011, 11:53
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Pasar Fila de un Datagrid a Otro

Mira erick21 algo asi :

Código vb:
Ver original
  1. Dim a as ArrayList
  2.  
  3. Function ObtenerValoresFila(ByVal fila As DataRow) As String()
  4. Dim Contenido(dt.Columns.Count() - 1) As String
  5. For x As Integer = 0 To (Contenido.Length() - 1)
  6. Contenido(x) = fila.Item(x).ToString()
  7. a.Add(x)
  8. Next
  9. Return Contenido
  10. End Function
  11.  
  12. Sub Copiar()
  13. For Each Seleccion As DataRow In dt.Select
  14. dt2.Rows.Add(ObtenerValoresFila(Seleccion))
  15. 'dt.Rows.Remove(Seleccion)
  16. Next
  17. remover()
  18. End Sub
  19.  
  20. Sub remover()
  21. For x As Integer = 0 To a.Count - 1
  22. dt.Rows.RemoveAt(a(x))
  23. Next
  24. End Sub
si sale error avisas porque lo estoy haciendo a pura logica :s. Saludos!
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #14 (permalink)  
Antiguo 11/01/2011, 12:55
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: Pasar Fila de un Datagrid a Otro

hola gracias por la ayuda , me sale el siguiente error en esta parte.

Function Valores(ByVal fila As DataRow) As String()

Dim contenido(dtb.Columns.Count() - 1) As String
For x As Integer = 0 To contenido.Length() - 1
contenido(x) = fila.Item(x).ToString()
a.Add(x) >>>>>> "Referencia a objeto no establecida como instancia de un objeto"
Next
Return contenido
End Function

al declarar el arraylist no deberia ir dim a as new arraylist ?
  #15 (permalink)  
Antiguo 11/01/2011, 13:29
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Pasar Fila de un Datagrid a Otro

Ops! si tienes razon, pero aun asi con el cambio que me dices igual te sale el mismo error?
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #16 (permalink)  
Antiguo 11/01/2011, 13:34
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: Pasar Fila de un Datagrid a Otro

pues ahora me marca este error

Sub remover()

For x As Integer = 0 To lista.Count - 1
dtb.Rows.RemoveAt(a(x)) >>>>> No hay ninguna fila en la posición 1.
Next
End Sub
  #17 (permalink)  
Antiguo 11/01/2011, 13:39
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Pasar Fila de un Datagrid a Otro

si te marca eso es porque el error esta en el sub de copiar:

Código vb:
Ver original
  1. For Each Seleccion As DataRow In dt.Select '<- Aqui entonces debe ser otra propiedad porque no esta obteniendo los seleccionados en "dt.Select"
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #18 (permalink)  
Antiguo 11/01/2011, 13:55
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: Pasar Fila de un Datagrid a Otro

Tienes Razon quedaria asi


Sub Copiar()

For Each Seleccion As DataRow In dtb.Select
dtb2.Rows.Add(Valores(Seleccion))
remover()
Next

End Sub

Sub remover()
Dim fila As Byte = dgdlista.CurrentCell.RowNumber

dtb.Rows.RemoveAt(fila)

End Sub

tmb hice un cambio aqui por que me seguia saliendo el mismo error
pero ahora me mueve todas las filas.

Última edición por Erick21; 11/01/2011 a las 14:04
  #19 (permalink)  
Antiguo 11/01/2011, 14:43
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Pasar Fila de un Datagrid a Otro

mmm mira, en todo caso mandate tu proyecto a mi correo para revisarlo con todo y bd, si lo soluciono te lo envio y posteo la solucion aqui, te parece?. Saludos!
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #20 (permalink)  
Antiguo 12/01/2011, 11:25
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: Pasar Fila de un Datagrid a Otro

Hola gracias por ayudarme , al final lo logre hacer pero cambie el datagrid a
datagridview y lo enlace a un datatable para trabajarlo de la misma manera.

Private Sub btneliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btneliminar.Click
Try
If dtb.Rows.Count = 0 Then
MessageBox.Show("Seleccione una Fila ", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
Else
Remover()
End If
Catch ex As Exception
Throw ex
End Try
End Sub
Sub Remover()
For Each Seleccion As DataGridViewRow In dgvlista.SelectedRows
dtb2.Rows.Add(Valores(Seleccion))
dgvlista.Rows.Remove(Seleccion)
Next

End Sub
Function Valores(ByVal fila As DataGridViewRow) As String()
Dim contenido(dgvlista.ColumnCount - 1) As String
For x As Integer = 0 To contenido.Length - 1
contenido(x) = fila.Cells(x).Value
Next
Return contenido
End Function

gracias nuevamente por tu tiempo , seguire investigando y aprendiendo mas.
  #21 (permalink)  
Antiguo 12/01/2011, 11:28
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Pasar Fila de un Datagrid a Otro

Excelente!, cualquier problema igual no olvides comentarnoslo para ayudarte. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Etiquetas: datagrid, fila, pasar
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 04:59.