【问题标题】:How do you get full error information for a stored procedure error out of LINQ-to-SQL or SQL Server?如何从 LINQ-to-SQL 或 SQL Server 中获取存储过程错误的完整错误信息?
【发布时间】:2009-03-26 23:41:28
【问题描述】:

我正在通过 LINQ-to-SQL 调用存储过程(是的,我知道它已被弃用)。我收到一个错误,但 IExecuteResult 似乎只能为我提供一个数字,当我想要完整的字符串错误描述时(就像你在 SQL Management Studio 中手动执行 SQL 时会得到的一样)。或者,在某个地方我可以找到记录的这些信息吗?我查看了数据库中的管理/日志内容,它似乎只保存登录和同步信息。

谢谢!

【问题讨论】:

标签: .net sql-server linq linq-to-sql stored-procedures


【解决方案1】:

其中一些错误可能已记录到 SQL Server 日志中。对于其余部分,您可能必须使用 SQL Profiler 并打开显示错误和异常的模板之一。

或者,如果您可以重现错误,您可以编写一些 ADO.NET 代码以使用相同的参数执行相同的 SP,然后捕获产生的 SqlException。它将包含您可能想要的所有错误详细信息,包括一个错误列表(如果有多个错误)。您还可以捕获可能返回的信息消息(PRINT 语句等)

【讨论】:

  • 那么,存储过程中没有/可以抛出 SQL 异常?在 .NET 方面我可以更恰当地处理什么? (当然除了在 sp 中返回一些错误代码)
  • 我说,“或者,如果您可以重现错误,您可以编写一些 ADO.NET 代码来执行具有相同参数的相同 SP,然后捕获导致的 SqlException。”
  • 好的,我不熟悉 SQL 分析器。我认为它只是用于 SQL Server 端的工具。我会再研究一下这种方法。感谢您的提醒。
  • 我不确定您是否正在阅读我正在写的内容。我对 SQL Profiler 只字未提。
【解决方案2】:

我叫错了树。 SP 没有返回任何东西 :) 感谢分析器上的提示,我以前从未看过它!

【讨论】:

    猜你喜欢
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    • 2012-11-18
    相关资源
    最近更新 更多