Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   ASPX (.net) (http://www.forosdelweb.com/f78/)
-   -   Data Table Already Belongs To Another Dataset (http://www.forosdelweb.com/f78/data-table-already-belongs-another-dataset-578270/)

JkCastro 21/04/2008 09:42

Data Table Already Belongs To Another Dataset
 
hola...quisiera si alguien me puede colaborar...
la idea es q quiero a un dataset adicionarle varios datatables.
mi codigo es el siguiente:
pero cuando llego a este punto :

ds.Tables.Add(dt1); //Adiciono al Dataset la tabla de resultados

ds.Tables.Add(dt); //Adiciono al Dataset la tabla con los precios e impuestos



me genera un error donde me dice q (DATA TABLE ALREADY BELONGS TO ANOTHER DATASET)

YA HE PROBADO CON (DT1.COPY) (DT.CLONE)

PERO NADA..SIGO EN LO MISMO...

SERA Q ME PUEDES DAR UNA MANITO...GRACIAS...



private DataSet comparaInventario(DataTable dt, DataTable dt1,string strCodcliente)

{

DataSet ds = new DataSet ();

try

{

ds = f_GetMaterialInvPrecio2(dt, strCodcliente);

foreach (DataRow dr in dt.Rows)

{

foreach (DataRow dr2 in ds.Tables[0].Rows)

{

if (dr[0].ToString().Trim () == dr2[0].ToString().Trim())

{

if (System.Convert.ToDecimal(dr[1]) > System.Convert.ToDecimal(dr2[2]))

{

//Agrego a la tabla de errores

dt1 = cls.AddRegistroResultados(dt1, "El producto " + dr[0].ToString() + " no tiene inventario, Lo que hay en el inventario es " + dr2[2].ToString(), "", "");

dr[4] = "NO"; //Actualizo la tabla que envia la interfaz si hay o no hay inventario

dt.AcceptChanges();

}

else {

dr[4] = "SI";

dt.AcceptChanges();

}

break;

}

}

}

//Adiciono el impuesto y el precio unitario

foreach (DataRow dr in dt.Rows)

{

foreach (DataRow dr2 in ds.Tables[1].Rows)

{

if (dr[0].ToString().Trim() == dr2[0].ToString().Trim())

{

//Calculo el precio con la cantidad y lo coloco en la tabla para devolverlo

dr[3] = System.Convert .ToString (System.Convert .ToDecimal (dr2[1]) * System.Convert.ToDecimal (dr[1]));

dr[2] = dr2[4]; // Actualizo impuesto a cobrar

dt.AcceptChanges();

break;

}

}

}



ds.Tables.Add(dt1); //Adiciono al Dataset la tabla de resultados

ds.Tables.Add(dt); //Adiciono al Dataset la tabla con los precios e impuestos

}

catch (Exception ex)

{

//Agrego a la tabla de errores

ds.Tables.Add(cls.AddRegistroResultados(dt1, "Error en Compara Inventario: " + ex.Message, "", ""));

}

return ds;

}

Javier Santamaria 22/04/2008 05:21

Re: Data Table Already Belongs To Another Dataset
 
Antes de ese procedimiento intenta crear una nueva tabla y cargarle los valores de dt1. No se si servira con dt.copy o dt.clone porque a lo mejor te deja referencias de memoria a dt1 y por eso te da los errores.

Saludos


La zona horaria es GMT -6. Ahora son las 23:04.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.