我创建了一个存储过程,用于删除表中的日志(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);
}
一旦条目被删除,它就会退出该功能。
答案 0 :(得分:0)
看来,recordLogs函数依赖于deleteLogs删除的值。
另外,考虑使用TransactionScope()包装这两个方法:
public void DeleteLog(int Id)
{
using (var tran = new TransactionScope())
{
getDataContext.recordLogs(Id);
getDataContext.deleteLogs(Id);
tran.Complete();
}
}