我有一个使用SQL Server 2012的.NET 4.6应用程序。 我需要做一些像基于System.Data.DataSet的对象的“回滚”。
换句话说:在某些时刻,我必须存储对象包含的所有内容(数据方案,数据)。然后我必须恢复这一切。
嗯 - 实际上数据方案没有改变;所以任务简化为“如何存储DataSet对象的数据,然后恢复它们”。
我可以使用方法Copy(),Clear()和Merge()吗?
我需要所有这些来回滚并重复失败的数据库操作:
...
MyClassDerivedFromDataSet myDataSetObj;
<to fill myDataSetObj with data>;
….
<store myDataSetObj data to some myDataSetObjCopy>;
<a DB Transaction begins>;
<operation DbDataAdapter.Update(myDataSetObj, …). It puts myDataSetObj data to DB, then updates myDataSetObj with data returned from DB>;
<another operation DbDataAdapter.Update(myDataSetObj, …). It puts myDataSetObj data to DB, then updates myDataSetObj with data returned from DB>;
If <the operation above failed>
{
<to rollback the Transaction>;
<restore myDataSetObj data from myDataSetObjCopy>;
<repeat the DbDataAdapter.Update(myDataSetObj, …) operations>
}
...