Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c asp.net中的SQL错误输出_C#_Asp.net_Sql_Stored Procedures - Fatal编程技术网

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