【发布时间】:2013-11-16 12:13:36
【问题描述】:
我有一个用于测试目的的存储过程总是抛出错误。
UPDATE [Test]
SET [1.1] = 0
,[1.2] = 0
,[1.3] = 0
,[1.4] = 0
WHERE Record_ID = 2 AND
[1.1] = 0 AND
[1.2] = 0 AND
[1.3] = 0 AND
[1.4] = 0
if(@@ROWCOUNT = 0)
begin
raiserror('Error on purpose',16,1)
END
虽然在 SQL MGMT studio 中引发错误,但它不会在 asp.net 的 try/catch 块中触发。
我这样称呼 SP:
try {
dataContext.TESTProcedure();
}
catch(Exception ex)
{
string error = ex.Message;
}
我已经单步执行了代码,但它从不进入 catch,即使它应该进入。
出了什么问题?
【问题讨论】:
-
@@rowcount = 0?我会调试存储过程以确保遇到 raiseerror。
-
跟踪 SQL Profiler 从代码中传递了什么查询并在 SSMS 中尝试。作为替代方案,在没有 IF 条件的情况下引发错误。
-
是的,它触发了错误并且行数= 0。错误是在sql management studio中引发的
标签: c# asp.net sql stored-procedures