У меня есть хранимая процедура в базе данных SQL Server 2005, в которой есть такой оператор:
IF @Condition = 0
BEGIN
RAISERROR('some error message',16,1)
RETURN
END
и вызывается из клиента C # примерно так:
try
{
SomeVariable = SqlHelper.ExecuteScalar(GetConnectionString(), "MySP", new object[] { param1, param2});
}
catch (SqlException e)
{
Console.WriteLine(e.Message);
}
Однако не исключение. Условие в SP всегда верно для тестирования. Чтобы проверить это, я скопировал вызов из SQL Server Profiler и выполнил его в окне запроса, и было напечатано сообщение ErrorMessage, что означает возникновение ошибки.
Не уверен, что происходит.