【发布时间】:2011-01-12 09:46:19
【问题描述】:
这就是问题所在。
我需要插入 tableA 并获取它的新行 ID。之后,我必须将该 ID 插入到 tableB 中。我必须在插入 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);
}
【问题讨论】: