SQL Server 2005是否将错误消息号传递回asp.net应用程序?

Mat*_*att 0 sql-server asp.net error-handling referential-integrity

我想在执行错误查询时从SQL Server获取消息号和严重性级别信息.

例如,当用户尝试删除另一条记录引用的行,并且级联关系为"无操作"时,我希望应用程序能够检查错误消息547("DELETE语句与REFERENCE constraint ...")并向用户返回用户友好和本地化的消息.

在SQL Server上直接运行此类查询时,将打印以下消息:

Msg 547, Level 16, State 0, Line 1
<Error message...>
Run Code Online (Sandbox Code Playgroud)

在Asp.Net应用程序中,此信息是否可在事件处理程序参数或其他位置获得?

另外,我不认为有人知道在哪里可以找到SQL Server消息号的确切参考?

mar*_*c_s 5

当然 - 检查抛出的SqlException是否在SQL Server上出错.

它包含一组SqlError元素,其中包含一堆属性,包括

  • Class 获取从SQL Server返回的错误的严重性级别.
  • LineNumber 获取包含错误的Transact-SQL命令批处理或存储过程中的行号.
  • Message 获取描述错误的文本.
  • Number 获取一个标识错误类型的数字.
  • Procedure 获取生成错误的存储过程或远程过程调用(RPC)的名称.
  • Server 获取生成错误的SQL Server实例的名称.
  • Source 获取生成错误的提供程序的名称.
  • State 从SQL Server获取表示错误,警告或"未找到数据"消息的数字错误代码.