您目前已離線,請等候您的網際網路重新連線

如何偵錯 Visual Studio.NET 中的預存程序

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:316549
結論
本文將逐步告訴您兩種方式您可以偵錯 SQL Server 預存程序與必要的組態設定及每一種方法的步驟。

Visual Studio.NET 開發人員可以使用伺服器總管來偵錯任何的 Visual Studio 專案之外的 SQL Server 預存程序,或開發人員可以直接從 Visual Basic、 Visual C#],或 Visual J# 專案中的 Managed 程式碼逐步執行預存程序的程式碼。

back to the top

選項 1: 偵錯預存程序以獨立模式

  1. 開啟 [伺服器總管]。

    注意: 您不需要加入資料連接],使用 SQL Server 伺服器,因為 SQL Server 伺服器會也列在 [伺服器] 節點下。您可以使用 [伺服器] 節點中遵循的步驟,不過,您可以使用到您的 SQL Server 伺服器的資料連接,相同的方式。
  2. 在 [伺服器總管] 中的 [伺服器] 節點下方展開 SQL Server 的電腦名稱、 展開 [SQL 伺服器] 節點、 展開 [SQL Server 執行個體、 展開 北風資料庫] 節點,然後再展開 [預存程序] 節點]。
  3. CustOrderHist 預存程序上按一下滑鼠右鍵,然後按一下 [逐步執行預存程序
  4. 執行預存程序] 對話方塊便會開啟,其中列出預存程序的參數。型別做為 @ 客戶編號值 ALFKI 輸入參數,然後按一下 [確定]
  5. 在 Visual Studio 設計環境中會開啟 [一個視窗,顯示預存程序的文字。醒目提示顯示預存程序的第一個可執行一行。按 F11 以逐步執行預存程序完成。
  6. 在 [輸出] 視窗中會顯示下列訊息,來表示執行成功:
    程式 'SQL 偵錯工具: T-SQL' 結束時仍有使用中的程式碼 0 (0x0)。
back to the top

選項 2: 逐步執行預存程序從 Managed 程式碼

  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 來執行 Visual Basic 專案。
  9. Form1 的出現,請按一下 指令按鈕。程式碼會執行到中斷點您在之前呼叫預存程序時設定。
  10. 按 F11。在預存程序] 視窗從 ExecuteReader 方法執行步驟的程式碼。
  11. 再次按下 F11。一行預存程序 SELECT 陳述式中的程式碼執行。然後控制項傳回至您的 Visual Basic 專案並執行到完成的專案。
  12. 若要繼續逐步執行 Visual Basic 程式碼,預存程序中的步驟之後,您必須設定在 Visual Basic 程式碼中的第二個中斷點之後對預存程序呼叫比方說在範例程式碼,這一節中所示中,您可以在第二個上設定中斷點下面這一行:
            While dr.Read					
back to the top

疑難排解

  • 若要從 Visual Studio 的程式碼逐步執行預存程序,您必須啟用 SQL 偵錯在 偵錯專案屬性
  • 若要逐步執行預存程序程式碼,您必須在預存程序本身中設定中斷點。否則,透過預存程序和預存程序視窗偵錯步驟不會開啟。
  • 若要繼續逐步執行 Visual Studio 程式碼偵錯預存程序中的步驟之後,您必須設定在某個點專案程式碼中的中斷點預存程序執行後否則,程式碼執行到完成偵錯預存程序中的步驟之後。
  • 安裝及設定問題請參閱 > 一節名為"設定偵 SQL 錯"在 Visual Studio.NET 說明文件。
back to the top

偵錯預存程序限制

下列是當偵錯預存程序,且您不會發生當您偵錯 Visual Studio 程式碼時,可能會遇到的限制清單:
  • 您不能 「 中斷 」 執行。
  • 您不能 「 編輯 」 繼續。
  • 您無法變更陳述式執行的順序。
  • 雖然您可以變更變數值,您所做的變更可能無法生效因為變數值會快取。
  • 不會顯示從 SQL PRINT 陳述式的輸出。
back to the top
参考
如更多有關偵錯在 Visual Basic 6.0 中,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
170496偵錯預存程序從 Visual Basic 的秘訣
如需詳細資訊請造訪下列的 Microsoft Web 網站 (或參閱 Visual Studio.NET 說明中的 [偵錯 SQL] 主題的文件):back to the top

警告:本文為自動翻譯

內容

文章識別碼:316549 - 最後檢閱時間:05/12/2007 08:14:35 - 修訂: 5.6

Microsoft ADO.NET (included with the .NET Framework), Microsoft ADO.NET 1.1, Microsoft Visual J# .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition, 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
意見反應