如何获取存储过程返回的所有消息\错误

时间:2011-09-21 07:34:43

标签: .net sql-server-2008 sqlexception

我有一个strored 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时,message属性只包含第一行,即

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

如何获取完整错误并向用户显示。

请注意,我无法更改存储过程。

更新

SqlException.Errors集合只包含一个条目,该条目是sp返回的第一行。 InnerException为空,其他属性(如DataStackTrace)不会返回所需信息。

1 个答案:

答案 0 :(得分:1)

检查Errors的{​​{1}} - 属性。在那里,您应该找到SqlException对象的列表,其中包含来自底层提供商的所有消息。