Обработка Sql Custom Exception

Как идентифицировать пользовательское сообщение об ошибке, вызванное хранимой процедурой sql, с кодом C#?

Хранимая процедура, ошибка будет возникать так

RAISERROR (N'This is message %s %d.', -- Message text.
       10, -- Severity,
       1, -- State,
       N'number', -- First argument.
       5); -- Second argument.

Из приведенного выше, как определить, что ошибка является пользовательским сообщением об ошибке. (т.е.) как то так

try{
   --actual code here
}
catch(SqlException ex)
{
    --how to check here that the exception is custom one
} 

1 ответ

Решение

При возникновении ошибки вы можете указать MessageId вместо текста сообщения. Этот номер будет найден в Number Свойство Исключения:

SQL:

    RAISERROR(50001, 12, 1) 

C#:

    if (sqlException.Number == 50001)
    {
        throw new CustomSQLException(//whatever);
    }
Другие вопросы по тегам