Кто-нибудь знает, как мне выполнить откат всех данных в .net c #, если во время процесса произошел сбой одного из сохраненных процессов?
Пример:
protected void btnSave_Click(object sender, EventArgs e)
{
int ixTest= SaveTest("123");
CreateTest(ixTest);
}
protected int SaveTest(int ixTestID)
{
SubSonic.StoredProcedure sp = Db.SPs.TestInsert(
null,
ixTestID);
sp.Execute();
int ixTest= (int)sp.OutputValues[0];
return ixTest;
}
private long CreateTest(int ixTest)
{
long ixTestCustomer = CreateTestCustomer();
TestCustomer testCustomer= new TestCustomer();
try
{
testCustomer.TestCustomerId = ixTest;
testCustomer.InteractionId = ixTestCustomer ;
testCustomer.Save();
}
catch
{
Response.Redirect("pgCallSaveFailure.aspx");
}
m_saleDetail = new TestSaleDetail();
try
{
m_saleDetail.SaleId = sale.SaleId;
m_saleDetail.Save();
}
catch
{
Response.Redirect("pgCallSaveFailure.aspx");
}
return ixTestCustomer ;
}
У меня следующий код вызовет btnSave_Click, затем он вызовет еще 2 функции Savetest () и CreateTest () для сохранения данных в базе данных. Как я могу откатить все транзакции данных в следующем коде, если проблема возникла только в CreateTest () и которые Savetest () были успешно выполнены. Как я могу откатить все данные для Savetest () и CreateTest ()?