(華版)

我想很多程序员都会面对一个问题。。。就是如何调试(Debug)Stored Procedure;以下是我在研究ADO.NET时所得到的心得,在此跟大家分享以下。

只需在VB.NET或C#代码里,添加SqlConnect_InfoMessage事件,然后就从SqlInfoMessageEventArgs读取所有的PRINT/ERROR讯息就可以了 。

所返回的讯息种类:
  Source  = The class that return the information.
  Error   = T-SQL/Database error number.
  Server  = SQL error serverity (please refer to MSDN for detail information).
  Line    = The line number of the T-SQL that cause the output.
  Message = Output/Error message.

   如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。

 cn.InfoMessage
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。        '声明变量
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
        Dim se As SqlError
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。        
With ListBox1
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。            
'显示讯息
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
            .Items.Add("+ Message: " & e.Message)
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。            .Items.Add(
" + Source: " & e.Source)
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。            
'检查SqlErrorCollection是否空的
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
            If e.Errors.Count > 0 Then
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。                
'读取每一个SqlError对象讯息
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
                For Each se In e.Errors
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。                    .Items.Add(
"  ? Error: " & se.Number)
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。                    .Items.Add(
"  ? Level: " & se.Server)
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。                    .Items.Add(
"  ? Line: " & se.LineNumber)
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。                    .Items.Add(
"  ? Message: " & se.Message)
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。                    .Items.Add(
"**************************")
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。                
Next
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。            
End If
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。            
'选最后一个记录
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
            .SelectedIndex = .Items.Count - 1
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。        
End With
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。    
End Sub

以下是Stored Procedure的代码,

如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。CREATE PROCEDURE CustOrdersOrdersEx
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。(
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。    @CustomerID     
nchar(5),
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。    @Count        
int output
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。)
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
AS
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
-- DEBUG MESSAGE
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
PRINT 'DEBUG START'
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
PRINT '@CustomerID = ' + @CustomerID
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
SELECT OrderID, 
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。    OrderDate,
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。    RequiredDate,
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。    ShippedDate
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
FROM Orders
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
WHERE CustomerID = @CustomerID
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
ORDER BY OrderID
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
-- DEBUG MESSAGE
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
PRINT @@ROWCOUNT
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
PRINT 'DEBUG END'
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
SET @Count = @@ROWCOUNT
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
SET QUOTED_IDENTIFIER OFF 
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。
GO


點撃下載代碼

相关文章: