【问题标题】:How to debug stored procedures from a C# debug session?如何从 C# 调试会话调试存储过程?
【发布时间】:2016-12-21 11:54:25
【问题描述】:

在 C# VisualStudio 项目中,C# 代码调用在 .dbml 文件中引用的存储过程(或通过 C# 中的 SQL 命令调用该过程)。

是否可以在存储过程代码中设置断点并在从 C# 调试会话调用存储过程时在该处中断(就像在 SQL Server 对象资源管理器中右键单击存储过程一样)选择“调试程序”)?

【问题讨论】:

  • 您在从 SQL Server 调试它时遇到任何问题吗?是什么让你从 Visual Studio 调试它。
  • 你不能从 Visual Studio 调试它。
  • 不,您可以 - 从 SQL Server 对象资源管理器中。
  • @NMathur - 如果可能的话,我喜欢从一个应用程序中完成所有事情的舒适性......但这不是问题。
  • 我只知道一种方法..执行程序。传递值然后调试..但是尝试新方法很好..不确定是否可能。但祝你好运..

标签: c# sql visual-studio debugging


【解决方案1】:

为了让您在 .NET 应用程序中调试时单步执行 SQL Server 上的 T-SQL 存储过程,您需要:

阅读并遵循指南“How to debug stored procedures in Visual Studio .NET (Option 2)”

以下是本文中的相关步骤...

  1. 在解决方案资源管理器中,右键单击项目(不是解决方案)并 打开属性页面。单击树中的配置属性 然后单击以选中 SQL Server 调试复选框 调试页面以启用存储过程调试。

  2. 在执行存储的代码行上设置断点 程序。

  3. 在服务器资源管理器中,找到并打开存储过程。 右键单击存储过程,然后单击编辑存储 程序。

  4. 在 SELECT 语句的存储过程中设置断点, 这是唯一的可执行代码行。

  5. 运行项目。

  6. 执行触发调用存储的代码的操作 程序。

  7. 按 F11。 ExecuteReader 方法中的代码执行步骤到 存储过程窗口。

注意我不是这方面的专家,因为我更喜欢使用 SSMS。

【讨论】:

  • 行得通!这只是一个奇怪的问题:我必须为每个 VisualStudio 会话启动一个手动存储过程调试会话,然后我可以在任何地方的每个过程中设置断点。 (第 4 点在这里什么都不做——也没有必要在 C# 代码中设置断点(第 2 点)。
  • “在 SELECT 语句的存储过程中设置断点,这是唯一的可执行代码行” - 如果 SP 不是项目的一部分,但已经存在,有什么方法可以做到这一点是否存在于 SQLS DB 中?
  • @MauryMarkowitz 尝试这篇文章以获取更多信息 - codeproject.com/Articles/1079275/…。我自己还是不用这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
相关资源
最近更新 更多