jueves, 20 de diciembre de 2012

DataTable ya pertenece a otro DataSet (C#)

DataTable ya pertenece a otro DataSet. Este mensaje me apareció cuando intentaba cargar dos DataTable de distinto origen en un  DataSet. ¿Y como es que estaba haciendo esto?:

DataSet ds = new DataSet();
DataTable dt0 = new DataTable();
DataTable dt1 = new DataTable();
dt0 = funcion1(par1, par2);
dt1 = funcion2(par1, par2);
ds.Tables.Add(dt0);
ds.Tables.Add(dt1);


En el código, dos funciones me devuelven DataTables que necesito cargar en el DataSet.

La forma correcta de hacerlo es usando el método copy:

DataSet ds = new DataSet();
DataTable dt0 = new DataTable();
DataTable dt1 = new DataTable();
dt0 = funcion1(par1, par2).Copy();
dt1 = funcion2(par1, par2).Copy();
ds.Tables.Add(dt0);
ds.Tables.Add(dt1);


El método copy copia la estructura y los datos de un DataTable en otro.

Fuente
http://msdn.microsoft.com/en-us/library/system.data.datatable.copy.aspx

3 comentarios:

Anónimo dijo...

Perfecto, era justo lo que necesitaba, gracias

adan mendoza dijo...

muchas gracias, era justo lo que necesitaba

Anónimo dijo...

muchas gracias, tambien tenia elmismo problema