Sql server SQL 2008:存储过程抛出错误,因此我可以在ASP.NET中捕获
我有一个简单的存储过程:Sql server SQL 2008:存储过程抛出错误,因此我可以在ASP.NET中捕获,sql-server,stored-procedures,try-catch,Sql Server,Stored Procedures,Try Catch,我有一个简单的存储过程: BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; IF EXISTS(SELECT UserName FROM Party WHERE UserName = @UserName) BEGIN --This means it ex
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF EXISTS(SELECT UserName FROM Party WHERE UserName = @UserName)
BEGIN
--This means it exists, return it to ASP and tell us
SELECT 'This record already exists!'
END
ELSE
BEGIN
--This means the record isn't in there already, let's go ahead and add it
SELECT 'Record Added'
-- Insert statements for procedure here
INSERT INTO Party
(EmailAddress, UserName, LoginPin)
VALUES (@EmailAddress, @UserName, @LoginPin)
END
END
如何从存储过程中抛出异常,以便.NET C应用程序可以使用TRY-catch块捕获错误?您可以在存储过程中使用RAISERROR
请参见本主题
另外,请参见我不是指在存储过程中尝试捕获。。。除非这是抛出错误的唯一方法?@dcolombus:如果您查看Microsoft文章的第一个链接,它将提供一个使用存储过程的示例,该存储过程使用RAISERROR,并在VB.NET中具有try..catch,您应该能够在C应用程序中轻松模拟它。感谢nybbler。。。我会深入调查的。如果你遇到任何问题,请告诉我。一旦你看到它运行起来,它确实运行得很好。它似乎根本没有抛出一个错误。我已经声明了错误消息,添加了RAISERROR并注释掉了SELECT。什么也没发生。