Как получить все сообщения \ ошибки, возвращаемые сохраненным процессом - PullRequest
2 голосов
/ 21 сентября 2011

У меня есть прокрученный Proc, который при вызове с определенным набором параметров возвращает следующие сообщения -

Msg 4104, Level 16, State 1, Line 1
The multi-part identifier "abc" could not be bound.
Msg 4104, Level 16, State 1, Line 1
The multi-part identifier "pqr" could not be bound.
Msg 4104, Level 16, State 1, Line 1
The multi-part identifier "xyz" could not be bound.
Msg 207, Level 16, State 1, Line 1
Invalid column name 'Name'.
Msg 50000, Level 16, State 1, Procedure ErrorHandlerProc, Line 218
Error Processing Request [ApplicationError]

Меня интересует последняя строка ошибки, поскольку она должна быть показана пользователю

Error Processing Request [ApplicationError]

Однако, когда я определяю SqlExceltion, свойство сообщения содержит только первую строку, т.е.

The multi-part identifier "abc" could not be bound.

Как получить полную ошибку и показать ее пользователю.

Обратите внимание, что я не могу изменить сохраненный процесс.

Обновление

Коллекция SqlException.Errors содержит только одну запись, которая является первой строкой, возвращаемой sp. InnerException имеет значение null, а другие свойства, такие как Data или StackTrace, не возвращают необходимую информацию.

1 Ответ

1 голос
/ 21 сентября 2011

Проверьте Errors -свойство SqlException. Там вы должны найти список SqlError объектов со всеми сообщениями от основного поставщика.

...