2013-11-26 11 views
3

我目前有一個ASP.NET應用程序,通過存儲過程處理所有對數據庫的調用,並處理所有SQL事務應用程序端。如何將SQL異常返回給調用的asp.net應用程序?

我的問題是我需要在我的存儲過程中拋出一個異常,以便它可以在應用程序中被捕獲並且可以回滾事務。我目前已經嘗試過RAISERROR和THROW,但它們只返回消息,並不會導致異常。

任何幫助,將不勝感激。

感謝

+1

RAISEERROR應該這樣做。檢查你的代碼,也許你在某處壓制異常。 –

+1

'RAISEERROR'和'THROW'都應該生成一個'SQLException',除非它是在SQL中用'TRY..CATCH'處理的。 –

回答

8

在你的存儲過程調用RAISERROR()的嚴重性級別必須以產生主叫側SqlException大於或等於16。這裏是一個RAISERROR()的例子,它將生成一個SqlException

RAISERROR ('Error raised in TRY block.', -- Message text. 
      16, -- Severity. 
      1 -- State. 
      ); 
+0

感謝您的快速響應。我使用的是高於16的嚴重性級別。事實證明,在應用程序中有一個隱藏的try catch,它不包括導致錯誤的參數。所以RAISERROR從未被調用過。 –

相關問題