在 .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中文網其他相關文章!