1
所以這就是問題所在。.net Oracle Data Provider事務回滾不起作用
我需要插入到tableA中並獲取其新的行ID。之後,我必須將該ID插入到tableB中。我必須在insertA插入tableA之後提交,這樣當我嘗試插入tableB時,我不會得到外鍵異常。
現在,我的理解是,如果在插入到tableB的函數中引發異常,則當try-catch塊捕獲異常時,原始插入到表中的內容將被回滾。這不是那樣做的。
我在某個地方犯了一個錯誤,但我不知道在哪裏。有沒有辦法在這裏完成我所需要的?
try
{
tableAinsert.ExecuteNonQuery();
transaction.Commit();
id= Int32.Parse(tableAinsert.Parameters["id"].Value.ToString());
if (vsType == "I")
{
tableBinsert(vsType, eventId, id);
}
}
catch (Exception err)
{
transaction.Rollback();
throw (err);
}