hacer copia de las filas de una tabla

05/08/2005 - 17:49 por Miko_tnt | Informe spam
Buenas... Tengo el siguiente problema que no he podido resolver:

debo hacer que una datatale(datable1) tenga la misma estructura que la tabla
de un dataset, luego recorro una tabla del dataset y dentro de este recorrido
le hago otro recorrido a otra tabla del mismo dataset, despues le comparo un
campo de la primera tabla con un campo de la segunda y cuando son iguales
saca una copia de la fila de la primera tabla y se la asigna a datatable1 y
al final agrega la datatable1 a una coleccion de tablas y vacia la datatable
para seguir con el siguiente elemento. El codigo es facil de entender y es el
siguiente:


datatable1 = ds.Tables(0).Clone//hace que la estructura sea la misma

For Each datarow1 In dataset1.Tables(0).Rows
datatable1.clear()
For Each datarow2 In dataset1.Tables(1).Rows
If Trim(datarow1(0)) = Trim(datarow2(0)) Then
datatable1.ImportRow(datarow1)
End If
Next
coleccionDTablas.add(datatable1)

Next

el codigo no muestra error pero se me presentan 2 inconvenientes. El primero
esta en que cuando hago "datatable1.ImportRow(datarow1)" saca una copia de la
fila que deberia pero en la copia nada mas me deja la primera columan con el
nombre que es y el resto de los campos me los deja en null.
El segundo problema esta en que siempre (para toda la coleccion de tablas)
queda agregada la misma tabla, (la ultima que se creo), no c si sea porke
solo le hago clear y a esta le cambio las columnas, mejor explicado: cada vez
que agrego una tabla agrega la que deberia, pero al agregar la siguiente
tabla deja todas la tablas que se han agregado igual a la ultimo que se agrego

ojala hallan entendido mi problema y POR FAVOR si alguien sabe como
solucionar algo de esto ayudeme por favor

MUCHAS GRACIAS
 

Leer las respuestas

#1 Angel. E. Ruiz. Pastor
05/08/2005 - 20:00 | Informe spam
amigo por que no realiza ds.Tables(0).copy y listo? y comprara row de la
tabla copia y tabla org? creo que es mas sencillo...
Saludos cordiales,
Ángel Ruiz
MCP C#
MVP de Visual Basic desde 2004
Caracas - Venezuela
"El conocimiento es un bien, que crece a medida que se comparte"
"Miko_tnt" escribió en el mensaje
news:
Buenas... Tengo el siguiente problema que no he podido resolver:

debo hacer que una datatale(datable1) tenga la misma estructura que la
tabla
de un dataset, luego recorro una tabla del dataset y dentro de este
recorrido
le hago otro recorrido a otra tabla del mismo dataset, despues le comparo
un
campo de la primera tabla con un campo de la segunda y cuando son iguales
saca una copia de la fila de la primera tabla y se la asigna a datatable1
y
al final agrega la datatable1 a una coleccion de tablas y vacia la
datatable
para seguir con el siguiente elemento. El codigo es facil de entender y es
el
siguiente:


datatable1 = ds.Tables(0).Clone//hace que la estructura sea la misma

For Each datarow1 In dataset1.Tables(0).Rows
datatable1.clear()
For Each datarow2 In dataset1.Tables(1).Rows
If Trim(datarow1(0)) = Trim(datarow2(0)) Then
datatable1.ImportRow(datarow1)
End If
Next
coleccionDTablas.add(datatable1)

Next

el codigo no muestra error pero se me presentan 2 inconvenientes. El
primero
esta en que cuando hago "datatable1.ImportRow(datarow1)" saca una copia de
la
fila que deberia pero en la copia nada mas me deja la primera columan con
el
nombre que es y el resto de los campos me los deja en null.
El segundo problema esta en que siempre (para toda la coleccion de tablas)
queda agregada la misma tabla, (la ultima que se creo), no c si sea porke
solo le hago clear y a esta le cambio las columnas, mejor explicado: cada
vez
que agrego una tabla agrega la que deberia, pero al agregar la siguiente
tabla deja todas la tablas que se han agregado igual a la ultimo que se
agrego

ojala hallan entendido mi problema y POR FAVOR si alguien sabe como
solucionar algo de esto ayudeme por favor

MUCHAS GRACIAS

Preguntas similares