【问题标题】:How can we handle MSSQL raiseerror in VB.net code behind using sqlcommand?我们如何在使用 sqlcommand 的 VB.net 代码中处理 MSSQL raiseerror?
【发布时间】:2012-09-12 10:19:23
【问题描述】:

我编写了一个在相同特定条件下引发错误的存储过程。当我使用 sqlcommand 使用 vb.net 代码调用此存储过程时,我无法捕获 RAISEERROR

存储过程

Create sp_UPDATE
as 
begin


    IF @QTY > @ReqAlloQty
    BEGIN
         RAISERROR('Product Quantity should not be more than Required qty.',16,1)        
         goto EXITWITHERROR  
    END             

end

VB.NET

 Try
    m_commDBcommand.ExecuteNonQuery()
 Catch ex As Exception
 Finally
 End Try

存储过程条件匹配时不会引发异常。

任何帮助将不胜感激

【问题讨论】:

  • 也许更多的代码示例可能会鼓励人们回答?目前,您似乎没有在异常处理程序中处理任何内容,因此调用应用程序会忽略它吗?我还建议(作为第一步)在您的 sp_UPDATE 中实现一个 try-catch-print-throw 子句,以确保您实际上将异常抛出回应用程序?

标签: asp.net sql-server vb.net


【解决方案1】:

在raiserror之后添加return语句:

RAISERROR('Product Quantity should not be more than Required qty.',16,1);
RETURN;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 2018-08-21
    • 2015-11-13
    相关资源
    最近更新 更多