Clonar DataSet

06/04/2004 - 09:29 por Anonimo | Informe spam
Hola amigos.

intento clonar un Dataset pero tengo problemas, tengo
este código más o menos

...
DataSet ds1 = ds.Clone();
DataRow NuevaFila = ds1.Tables[0].NewRow();
NuevaFila["CD_PERSONA"] = DBNull.Value;
NuevaFila["DS_NOMBRE"] = "[Ninguno]";

ds1.Tables[0].Rows.Add(NuevaFila);
foreach (DataRow myRow in ds.Tables[0].Rows)
{
ds1.Tables[0].Rows.Add(myRow);
}

Cuando intento hacer

ds1.Tables[0].Rows.Add(myRow);

me falla, y el mensaje de error me dice que no se puede
insertar porque esa fila ya está en otra tabla.

Cómo podría hacerlo ?

Preguntas similare

Leer las respuestas

#1 Vidi
06/04/2004 - 11:51 | Informe spam
Igual que has clonado el dataset deberias clonar la fila,
una fila no puede estar en 2 tablas diferentes, solo puede
tener un padre, osease no puede estar en 2 colecciones a
la vez.

ds1.Tables[0].Rows.Add(myRow.Clone());

Espero que te funcione.


Hola amigos.

intento clonar un Dataset pero tengo problemas, tengo
este código más o menos


DataSet ds1 = ds.Clone();
DataRow NuevaFila = ds1.Tables[0].NewRow();
NuevaFila["CD_PERSONA"] = DBNull.Value;
NuevaFila["DS_NOMBRE"] = "[Ninguno]";

ds1.Tables[0].Rows.Add(NuevaFila);
foreach (DataRow myRow in ds.Tables[0].Rows)
{
ds1.Tables[0].Rows.Add(myRow);
}

Cuando intento hacer

ds1.Tables[0].Rows.Add(myRow);

me falla, y el mensaje de error me dice que no se puede
insertar porque esa fila ya está en otra tabla.

Cómo podría hacerlo ?



.

Respuesta Responder a este mensaje
#2 Anonimo
06/04/2004 - 12:07 | Informe spam
Al clonar la Fila

ds1.Tables[0].Rows.Add(myRow.Clone());

también me copia los datos ? o los pierdo ??

Cómo podría pasar las filas (conlos datos, sus valores
correspondientes a las columnas) de un dataset a otro.

Si clono dataset solo clona estructura no datos.

Si clono fila (row) qué pasaría ?

Gracias. Espero me aclaren mi confusión.





Igual que has clonado el dataset deberias clonar la


fila,
una fila no puede estar en 2 tablas diferentes, solo


puede
tener un padre, osease no puede estar en 2 colecciones a
la vez.

ds1.Tables[0].Rows.Add(myRow.Clone());

Espero que te funcione.


Hola amigos.

intento clonar un Dataset pero tengo problemas, tengo
este código más o menos


DataSet ds1 = ds.Clone();
DataRow NuevaFila = ds1.Tables[0].NewRow();
NuevaFila["CD_PERSONA"] = DBNull.Value;
NuevaFila["DS_NOMBRE"] = "[Ninguno]";

ds1.Tables[0].Rows.Add(NuevaFila);
foreach (DataRow myRow in ds.Tables[0].Rows)
{
ds1.Tables[0].Rows.Add(myRow);
}

Cuando intento hacer

ds1.Tables[0].Rows.Add(myRow);

me falla, y el mensaje de error me dice que no se puede
insertar porque esa fila ya está en otra tabla.

Cómo podría hacerlo ?



.



.

Respuesta Responder a este mensaje
#3 carlos
06/04/2004 - 12:13 | Informe spam
Le aclaro que

myRow.Clone()

no se puede utilizar pues no es un método de DataRow.

Habría que hacerlo de otra forma


DataSet ds1 = ds.Clone();
DataRow NuevaFila = ds1.Tables[0].NewRow();
NuevaFila["CD_PERSONA"] = DBNull.Value;
NuevaFila["DS_NOMBRE"] = "[Ninguno]";

ds1.Tables[0].Rows.Add(NuevaFila);
foreach (DataRow myRow in ds.Tables[0].Rows)
{
ds1.Tables[0].Rows.Add(myRow);
}




Igual que has clonado el dataset deberias clonar la


fila,
una fila no puede estar en 2 tablas diferentes, solo


puede
tener un padre, osease no puede estar en 2 colecciones a
la vez.

ds1.Tables[0].Rows.Add(myRow.Clone());

Espero que te funcione.


Hola amigos.

intento clonar un Dataset pero tengo problemas, tengo
este código más o menos


DataSet ds1 = ds.Clone();
DataRow NuevaFila = ds1.Tables[0].NewRow();
NuevaFila["CD_PERSONA"] = DBNull.Value;
NuevaFila["DS_NOMBRE"] = "[Ninguno]";

ds1.Tables[0].Rows.Add(NuevaFila);
foreach (DataRow myRow in ds.Tables[0].Rows)
{
ds1.Tables[0].Rows.Add(myRow);
}

Cuando intento hacer

ds1.Tables[0].Rows.Add(myRow);

me falla, y el mensaje de error me dice que no se puede
insertar porque esa fila ya está en otra tabla.

Cómo podría hacerlo ?



.



.

Respuesta Responder a este mensaje
#4 Carlos Estrada
06/04/2004 - 20:09 | Informe spam
Solo me gustaria remarcar que el metodo Clone() no hace
una copia de los datos, hace una copia de las referencias
a los datos, de tal forma que tendriamos 2 juegos de
apuntadores.

Al clonar la Fila

ds1.Tables[0].Rows.Add(myRow.Clone());

también me copia los datos ? o los pierdo ??

Cómo podría pasar las filas (conlos datos, sus valores
correspondientes a las columnas) de un dataset a otro.

Si clono dataset solo clona estructura no datos.

Si clono fila (row) qué pasaría ?

Gracias. Espero me aclaren mi confusión.





Igual que has clonado el dataset deberias clonar la


fila,
una fila no puede estar en 2 tablas diferentes, solo


puede
tener un padre, osease no puede estar en 2 colecciones




a
la vez.

ds1.Tables[0].Rows.Add(myRow.Clone());

Espero que te funcione.


Hola amigos.

intento clonar un Dataset pero tengo problemas, tengo
este código más o menos


DataSet ds1 = ds.Clone();
DataRow NuevaFila = ds1.Tables[0].NewRow();
NuevaFila["CD_PERSONA"] = DBNull.Value;
NuevaFila["DS_NOMBRE"] = "[Ninguno]";

ds1.Tables[0].Rows.Add(NuevaFila);
foreach (DataRow myRow in ds.Tables[0].Rows)
{
ds1.Tables[0].Rows.Add(myRow);
}

Cuando intento hacer

ds1.Tables[0].Rows.Add(myRow);

me falla, y el mensaje de error me dice que no se






puede
insertar porque esa fila ya está en otra tabla.

Cómo podría hacerlo ?



.



.



.

Respuesta Responder a este mensaje
#5 Anonimo
07/04/2004 - 12:56 | Informe spam
Entonces para copiar los datos de una fila en el nuevo
dataset, cómo se haría ? Ya me perdí.



Solo me gustaria remarcar que el metodo Clone() no hace
una copia de los datos, hace una copia de las


referencias
a los datos, de tal forma que tendriamos 2 juegos de
apuntadores.

Al clonar la Fila

ds1.Tables[0].Rows.Add(myRow.Clone());

también me copia los datos ? o los pierdo ??

Cómo podría pasar las filas (conlos datos, sus valores
correspondientes a las columnas) de un dataset a otro.

Si clono dataset solo clona estructura no datos.

Si clono fila (row) qué pasaría ?

Gracias. Espero me aclaren mi confusión.





Igual que has clonado el dataset deberias clonar la


fila,
una fila no puede estar en 2 tablas diferentes, solo


puede
tener un padre, osease no puede estar en 2 colecciones




a
la vez.

ds1.Tables[0].Rows.Add(myRow.Clone());

Espero que te funcione.


Hola amigos.

intento clonar un Dataset pero tengo problemas, tengo
este código más o menos


DataSet ds1 = ds.Clone();
DataRow NuevaFila = ds1.Tables[0].NewRow();
NuevaFila["CD_PERSONA"] = DBNull.Value;
NuevaFila["DS_NOMBRE"] = "[Ninguno]";

ds1.Tables[0].Rows.Add(NuevaFila);
foreach (DataRow myRow in ds.Tables[0].Rows)
{
ds1.Tables[0].Rows.Add(myRow);
}

Cuando intento hacer

ds1.Tables[0].Rows.Add(myRow);

me falla, y el mensaje de error me dice que no se






puede
insertar porque esa fila ya está en otra tabla.

Cómo podría hacerlo ?



.



.



.



.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida