首頁 >後端開發 >C++ >如何擷取 .NET 中的 T-SQL 預存程序 PRINT 輸出?

如何擷取 .NET 中的 T-SQL 預存程序 PRINT 輸出?

Susan Sarandon
Susan Sarandon原創
2025-01-17 16:42:10492瀏覽

How Can I Capture T-SQL Stored Procedure PRINT Output in .NET?

在 .NET 中擷取預存程序 PRINT 輸出

如何在 .NET 中存取由 T-SQL 預存程序產生的 PRINT 輸出?例如,考慮以下使用 PRINT 顯示單字「word」的預存程序:

<code class="language-sql">CREATE PROC usp_PrintWord AS
    PRINT 'word'</code>

如何使用 C# 程式碼擷取此過程的輸出?

解決方案涉及訂閱資料庫連線上的 InfoMessage 事件。每當連線的 SQL Server 執行個體會傳送訊息訊息(包括 PRINT 語句)時,都會引發此事件。

<code class="language-csharp">SqlCommand cmd = new SqlCommand("usp_printWord", TheConnection);
cmd.CommandType = CommandType.StoredProcedure;
myConnection.InfoMessage += new SqlInfoMessageEventHandler(myConnection_InfoMessage);

void myConnection_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
    string ProcPrint = e.Message;
}</code>

執行預存程序時,將觸發 InfoMessage 事件,並呼叫訊息處理程序。可以透過 SqlInfoMessageEventArgs 物件的 Message 屬性存取訊息文字。

以上是如何擷取 .NET 中的 T-SQL 預存程序 PRINT 輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn