A: 

You're calling DataSet.AcceptChanges before DataSet.GetChanges, which is resetting the RowState so nothing appears to be modified.

"The RowState property of each DataRow also changes; Added and Modified rows become Unchanged, and Deleted rows are removed."

Sean Fausett
A: 

@Sean

I did what you said and it works. But I have another concern, every time I extract the subset using this code

if (_Ds.HasChanges()) { DataSet DsChanges = _Ds.GetChanges(DataRowState.Modified); }

when I checked the data in my new dataset DsChanges the data that is extracted was still the original data upon loading of form? It should be the changes that I made in _Ds. I ended up using stored procedure and it was not the elegant way of solving my problem.

Darren