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;
}