我想在执行错误查询后从SQL Server获取消息号和严重性级别信息。
例如,当用户尝试删除另一条记录所引用的行,并且级联关系为“无操作”时,我希望应用程序能够检查错误消息547(“DELETE语句与引用约束...“),并向用户返回用户友好且本地化的消息。
直接在SQL Server上运行此类查询时,将显示以下消息:
Msg 547, Level 16, State 0, Line 1
<Error message...>
在Asp.Net应用程序中,此信息是否可以在事件处理程序参数中或其他位置使用?
另外,我不认为有人知道在哪里可以找到有关SQL Server消息号的权威引用?
最佳答案
当然-检查抛出的SqlException是SQL Server上的错误。
它包含SqlError元素的集合,其中包含许多属性,包括
Class
获取从SQL Server返回的错误的严重性级别。 LineNumber
获取包含错误的Transact-SQL命令批处理或存储过程中的行号。 Message
获取描述错误的文本。 Number
获取一个数字,该数字标识错误的类型。 Procedure
获取生成错误的存储过程或远程过程调用(RPC)的名称。 Server
获取生成错误的SQL Server实例的名称。 Source
获取生成错误的提供程序的名称。 State
从SQL Server获取数字错误代码,该错误代码表示错误,警告或“未找到数据”消息。 关于asp.net - SQL Server 2005是否将错误消息号传递回asp.net应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3007684/