2013-12-12 23 views
0

我創建了一個存儲過程,從表中刪除日誌(deleteLogs),並從爲其創建的DeleteMethod中運行它。我的問題是有另一個存儲過程(recordLogs)在該方法內根本不運行。ObjectDataSource的DeleteMethod中的存儲過程

<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

看來recordLogs函數依賴於deleteLogs刪除的值。

此外,想想有TransactionScope的()包裹兩種方法:

public void DeleteLog(int Id) 
{ 
    using (var tran = new TransactionScope()) 
    { 
     getDataContext.recordLogs(Id); 
     getDataContext.deleteLogs(Id); 
     tran.Complete(); 
    } 
}