プロセス中にストアドプロシージャの1つが失敗した場合、どのようにすべてのデータをロールバックできますか。ストアドプロードの1つが見つかったときにデータロールバックが発生しました。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()の両方のデータをすべてロールバックするにはどうすればよいですか?
TransactionScope
フレームワークのバージョンの制約はありますか? –