|
今天写程序的时候遇到dataset.GetChanges()不能得到删除了的记录问题,经过查资料,终于发现并解决问题.
问题出现在我们删除记录的方法上,在dataset中删除记录有两种方式: remove和delete.删除的结果都是一样,但是,用dataset.GetChanges()获取删除了的记录时结果就有差异了.用remove方式删除,不能用dataset.GetChanges()不能得到删除了的记录,而用delete则可以,以下是演示代码.
DataRow dr = Ds.Table["tbName"].Row.Find((object)1); //假设tbname只有一个int主键
方法一: Ds.Table["tbName"].Row.Remove(dr);
方法二: dr.Delete();
DataSet tempDs = Ds.GetChanges(); 方法一不能获取删除的记录,tempDs 将为null, 方法二则可以获取删除的记录.
注意:在获取删除的记录前,不能有 Ds.AcceptChanges()或者Ds.Table["tbName"].AcceptChanges()操作,否则,不能获取
|