J'ai une procédure stockée qui donne une erreur suffisamment amicale que je veux montrer aux utilisateurs, mais quand je l'appelle à partir de .net, il sort deux fois. Quand j'appelle le proc du studio de gestion de serveur de sql il sort seulement une fois.SqlException.Message dupliqué lors de l'appel sqlserver stocké proc
Voici une version dénudation de la procédure stockée:
ALTER PROC [Production].[spDoSomething] (
@PassedID int)
AS
BEGIN
DECLARE @ErrorString nvarchar(500);
BEGIN TRY
...
RAISERROR('Bad things are happening.', 11 /*severity*/, 1 /*state*/);
...
END TRY
BEGIN CATCH
SET @ErrorString = 'Error found:' + ERROR_MESSAGE();
PRINT @ErrorString;
RAISERROR(@ErrorString, 11 /*severity*/, 1 /*state*/);
END CATCH
END
J'appelle cela dans un code C# en utilisant ExecuteNonQuery()
d'un objet System.Data.SqlClient.SQLCommand
alors j'attraper un System.Data.SqlClient.SQLException
mais le message contient
"Error: Found Bad things are happening.\nError Found: Bad things are happening."
Est-ce que quelqu'un sait une raison pour laquelle il sort deux fois?
Ceci est sur le serveur SQL Server 2008 et .NET 3.5