newDataSet = ds.Clone() // Clone the original, returns a new Ds with the structure but no data sr = new System.IO.StringReader(theDiffGram); System.Xml.XmlTextReader xmlr = new System.Xml.XmlTextReader(sr); newDataSet.ReadXml(xmlr, XmlReadMode.DiffGram); // Exception hereThe exception states that the table referenced in the diffgram does not exist, but it does exist... since it's a clone from the original.