que tenían el mismo problema y lo resolvió mediante Remove
.En mi opinión, su código podría ser la siguiente:
dsformulaValues.Tables.Add(m_DataAccess.GetFormulaValues
(dv.ToTable.DefaultView.ToTable(False, strSelectedCols)).Tables(0))
dsformulaValues.Tables.Remove(//I'm not sure to understand your code, so read this code line as only an input for your stuff. Please, consider my code below for more understanding.
Mi trabajo código era así:
DataTable myTable = new DataTable();
private void Save()
{
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myTable);
myDataSet.Tables.Remove(myTable);//This works
myDataSet.WriteXml("myTable.xml");
}
private void buttonSave_Click(object sender, EventArgs e)
{
Save();
}
Cada vez que se hace clic en el botón buttonSave
, el mensaje “DataTable ya pertenece a otro DataSet "apareció. Después de escribir el código de línea myDataSet.Tables.Remove(myTable);//This works
la aplicación comenzó a ejecutarse sin problemas y ahora puedo hacer clic en el botón más veces, sin perder el valor de myTable
y sin el mensaje de error.
Espero que esto pueda ayudar.
¿sabe por qué es así? Significado p. Lista myl = new Lista (); y luego agregué 3 elementos y hago esto myl [0] = myl [1] y esto funciona bien. Ya he agregado myl [1] a la lista. La pregunta es más genérica en Datatable sobre por qué y cómo se realiza esta comprobación si la tabla ya pertenece al Dataset –
Dhananjay
La copia tiene una gran sobrecarga ... vea la respuesta de Nathaniel Layton a continuación para una mejor solución. – Edyn