我有一個SQL服務器,該服務器具有這樣的語句2005數據庫的存儲過程:SQL Server的RAISERROR在.NET客戶端不會造成異常
IF @Condition = 0
BEGIN
RAISERROR('some error message',16,1)
RETURN
END
,它是從一個C#客戶端調用像這樣:
try
{
SomeVariable = SqlHelper.ExecuteScalar(GetConnectionString(), "MySP", new object[] { param1, param2});
}
catch (SqlException e)
{
Console.WriteLine(e.Message);
}
然而,沒有例外被提出。 SP中的條件在測試中始終是正確的。爲了驗證這一點,我複製了來自SQL Server Profiler的調用,並在查詢窗口中執行它並打印ErrorMessage,這意味着會引發錯誤。
不知道發生了什麼事。
您是否曾嘗試在您的catch語句中放置一個斷點,以查看它是否甚至得到執行? – 2009-06-18 02:03:16
是的。這就是我發現它不起作用的原因。 – Abdu 2009-06-18 05:00:26