ObjectDataSource的DeleteMethod中的存储过程
本文关键字:存储过程 DeleteMethod ObjectDataSource | 更新日期: 2024-09-25 22:42:26
我创建了一个从表中删除日志的存储过程(deleteLogs),并从我为其创建的DeleteMethod中运行它。我的问题是,该方法中还有另一个存储过程(recordLogs)根本不运行。
<asp:ObjectDataSource ID="LogsDataSource1" runat="server" SelectMethod="GetLogs" UpdateMethod="UpdateLog" DeleteMethod="DeleteLog" TypeName="ServiceData">
<DeleteParameters>
<asp:Parameter Name="Id"/>
</DeleteParameters>
</asp:ObjectDataSource>
public void DeleteLog(int Id)
{
getDataContext.deleteLogs(Id);
getDataContext.recordLogs(Id);
}
然而,如果我交换他们的订单,它可以很好地
public void DeleteLog(int Id)
{
getDataContext.recordLogs(Id);
getDataContext.deleteLogs(Id);
}
看起来条目一被删除,就会退出函数。
recordLogs函数似乎依赖于deleteLogs删除的值。
另外,考虑使用TransactionScope()包装这两个方法:
public void DeleteLog(int Id)
{
using (var tran = new TransactionScope())
{
getDataContext.recordLogs(Id);
getDataContext.deleteLogs(Id);
tran.Complete();
}
}