I’m adding a datatable to a dataset like this:
DataTable dtImage = new DataTable();
//some updates in the Datatable
ds.Tables.Add(dtImage);
But the next time, when the datatable gets updated, will it be reflected in the dataset? or we need to write some code to make it reflected?
Also, I’m checking the dataset if the datatable exists in the dataset already using:
if(!ds.Tables.Contains("dtImage"))
ds.Tables.Add(dtImage);
In the first iteration, ds.Tables.Contains("dtImage") is false, so, ds.Tables.Add(dtImage) adds the table to the dataset. But in the second iteration,
ds.Tables.Contains("dtImage") is false again, but ds.Tables.Add(dtImage) throws an error:
Datatable already belongs to this dataset.
If the dataset doesn’t contain the datatable named “dtImage”, why is it throwing an error?
Update: Thanks, that issue got solved. Pls answer this:
But the next time, when the datatable gets updated, will it be
reflected in the dataset? or we need to write some code to make it
reflected?
I assume that you haven’t set the
TableNameproperty of the DataTable, for example via constructor:If you don’t provide a name, it will be automatically created with
"Table1", the next table will get"Table2"and so on.Then the solution would be to provide the
TableNameand then check withContains(nameOfTable).To clarify it: You’ll get an
ArgumentExceptionif that DataTable already belongs to the DataSet (the same reference). You’ll get aDuplicateNameExceptionif there’s already a DataTable in the DataSet with the same name(not case-sensitive).http://msdn.microsoft.com/en-us/library/as4zy2kc.aspx