C# c asp.net中的SQL错误输出
我有一个存储过程,出于测试目的,它总是抛出一个错误C# c asp.net中的SQL错误输出,c#,asp.net,sql,stored-procedures,C#,Asp.net,Sql,Stored Procedures,我有一个存储过程,出于测试目的,它总是抛出一个错误 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
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;
}
我已经通过了代码,它从来没有进入捕获,即使它应该
出了什么问题?我将更深入地了解dataContext正在做什么。如果在幕后使用datareader,则可能必须前进到下一个结果集才能获得错误 召唤 关于读者。有关更多信息: 那么,我们如何才能让它发挥作用呢?那么,当使用SqlDataReader时 将只迭代第一个结果集,在本例中 是存储过程中的select。此结果集将为空 因为没有ID号10的数据。因此,没有显示任何内容 未访问第二个结果集。我们要做的就是搬家 进入下一个结果集,以便掌握错误 这样做的一个方法是如下所示,即,这将一直持续下去 返回的结果将一直设置到SqlDataReader关闭为止,它将关闭SqlDataReader 将在不再返回结果集时发生
@rowcount=0吗?我将调试存储过程以确保遇到raiseerror。跟踪SQL Profiler从代码中传递的查询,并在SSMS中尝试。或者,在没有IF条件的情况下引发错误。是,它会触发错误,且行数为=0。该错误在sql management studio中引发
NextResult