Buenos dias...solicito de su ayuda...
yo estoy tratando de que aun DataSet asignarle dos dataTables, lo estoy haciendo de la siguiente manera.. 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...
si alguien me puede dar una manitoooo
Este es mi Procedicimiento para la generacion del Dataset Con los Datatable.
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;
}