如何调试在 Visual Studio.net 中的存储的过程

文章翻译 文章翻译
文章编号: 316549 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文分步介绍了两种方法,您可以调试 SQL Server 存储过程和必需的配置设置和每种方法的步骤。

Visual Studio.net 开发人员可以使用服务器资源管理器调试独立于任何 Visual Studio 项目的 SQL Server 存储过程或开发人员可以进入并单步执行存储过程的代码在 Visual Basic,Visual C#,或 Visual J# 项目中的托管代码中直接。

选项 1: 调试在独立模式下的存储的过程

  1. 打开服务器资源管理器。

    : 不是所需添加数据连接使用 SQL Server 服务器,因为 SQL Server 服务器也列在服务器节点下。您将在后面的步骤中使用服务器节点,但是,您可以使用数据连接到您 SQL Server 服务器相同的方式。
  2. 在服务器资源管理器中 服务器 节点下展开 SQL Server 计算机名称、 展开 SQL 服务器 节点、 展开 SQL Server 实例,展开 罗斯文数据库 节点,然后展开 存储过程 节点。
  3. 用鼠标右键单击 CustOrderHist 存储过程,然后单击 装入存储过程的步骤
  4. 将打开 运行存储的过程 对话框中,其中列出了存储过程的参数。类型为 @ 客户 id 值 ALFKI 输入参数,然后单击 确定
  5. 在 Visual Studio 的设计环境中打开一个窗口,显示存储过程的文本。突出显示该存储过程的第一个可执行文件的行。按 F11 可以单步执行存储过程,直到完成。
  6. 在输出窗口中显示以下消息以表明成功执行:
    该程序 SQL 调试器: T-SQL 已退出,代码为 0 (0x0)。

选项 2: 插入一个存储过程从托管代码的步骤

  1. 创建新的 Visual Basic Windows 应用程序项目。
  2. 将一个 按钮 控件从工具箱拖到 Form1。在 Form1 代码窗口的顶部添加下面的代码行:
    Imports System.Data.SqlClient
    					
  3. 下面的代码复制到 Button1_Click 事件过程,请执行以下操作:

    : 修改为您的环境需要在连接字符串。
            Dim cn As SqlConnection
            Dim strCn As String
            Dim cmd As SqlCommand
            Dim prm As SqlParameter
            strCn = "Data Source=(local);Initial Catalog=Northwind;" & _
                "Integrated Security=SSPI"
            cn = New SqlConnection(strCn)
            cmd = New SqlCommand("CustOrderHist", cn)
            cmd.CommandType = CommandType.StoredProcedure
            prm = New SqlParameter("@CustomerID", SqlDbType.Char, 5)
            prm.Direction = ParameterDirection.Input
            cmd.Parameters.Add(prm)
            cmd.Parameters("@CustomerID").Value = "ALFKI"
            cn.Open()
            Dim dr As SqlDataReader = cmd.ExecuteReader
            While dr.Read
                Console.WriteLine("Product ordered: {0}", dr.GetSqlString(0))
            End While
            dr.Close()
            cn.Close()
    					
  4. 在解决方案资源管理器中,用鼠标右键单击项目 (不在解决方案),并打开 属性 页。在树中单击 配置属性,然后单击以选中启用调试存储的过程 调试 页上的 SQL Server 调试 复选框。
  5. 下面的代码行上设置断点:
           Dim dr As SqlDataReader = cmd.ExecuteReader
    					
  6. 在服务器资源管理器中,找到并打开 CustOrderHist 存储过程,如选项 1 中所述。用鼠标右键单击该存储的过程,然后单击 编辑存储过程
  7. 这是唯一的可执行的代码行在 SELECT 语句存储过程中设置断点。
  8. 按 f5 键以运行 vba 项目。
  9. 当出现 Form1 时,单击 命令按钮。该代码将运行到断点设置在调用存储的过程之前。
  10. 按 F11。代码执行的步骤从 ExecuteReader 方法到存储的过程窗口中。
  11. 再次按 F11。执行该存储过程在 SELECT 语句中的代码在单个行。然后将控件返回到您的 Visual Basic 项目,并在项目运行完成。
  12. 若要继续逐句通过 Visual Basic 代码单步执行的存储过程后,您必须在存储过程在调用之后在 Visual Basic 代码中设置第二个断点。例如对于在此部分所示的代码示例,您可以设置第二个断点以下行:
            While dr.Read
    					

故障排除

  • 若要从 Visual Studio 代码进入并单步执行存储过程,您必须启用 SQL 调试在 调试 页上的 项目属性
  • 若要单步执行存储的过程代码,您必须在存储过程本身中设置断点。否则,调试存储的过程和为该存储过程窗口的步骤不会打开。
  • 若要继续通过 Visual Studio 代码单步调试存储过程中的步骤后,您必须在存储过程的执行后在项目代码中的某个位置设置断点。否则,代码将运行要调试的存储过程的步骤后完成。
  • 有关安装和配置问题请参阅部分中名为"设置 SQL 调试"Visual Studio.net 中文档。

存储的过程调试的限制

下面是调试存储的过程和执行不时遇到的 Visual Studio 代码进行调试时,您就可能会遇到的一些限制的列表:
  • 您不能"分页符"执行。
  • 您不能"编辑并继续。
  • 您不能更改语句执行的顺序。
  • 虽然您可以更改变量的值,但是所做的更改可能会生效,因为变量的值被缓存。
  • 不显示 SQL PRINT 语句中的输出。

参考

有关在 Visual Basic 6.0 中调试的详细信息单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
170496有关调试从 Visual Basic 的存储的过程的提示
有关详细的信息,请访问下面的 Microsoft 网站 (请参阅 Visual Studio.net 帮助中的"调试 SQL"主题或文档):
调试 SQL
http://msdn2.microsoft.com/en-us/library/zefbf0t6(vs.71).aspx

属性

文章编号: 316549 - 最后修改: 2007年5月12日 - 修订: 5.6
这篇文章中的信息适用于:
  • Microsoft ADO.NET (included with the .NET Framework)
  • Microsoft ADO.NET 1.1
  • Microsoft Visual J# .NET 2003 Standard Edition
  • Microsoft Visual .NET 2002 标准版
  • Microsoft Visual Basic .NET 2003 标准版
  • Microsoft Visual C# .NET 2002 标准版
  • Microsoft Visual C# .NET 2003 标准版
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
关键字:?
kbmt kbhowtomaster kbsqlclient kbsystemdata KB316549 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 316549
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com