Erfassen der PRINT-Ausgabe gespeicherter Prozeduren in .NET
Wie greife ich auf die PRINT-Ausgabe zu, die von einer gespeicherten T-SQL-Prozedur in .NET generiert wurde? Betrachten Sie beispielsweise die folgende gespeicherte Prozedur, die PRINT verwendet, um das Wort „word“ anzuzeigen:
<code class="language-sql">CREATE PROC usp_PrintWord AS PRINT 'word'</code>
Wie kann ich die Ausgabe dieses Prozesses mit C#-Code erfassen?
Die Lösung besteht darin, das InfoMessage-Ereignis auf der Datenbankverbindung zu abonnieren. Dieses Ereignis wird immer dann ausgelöst, wenn die verbundene Instanz von SQL Server eine Informationsnachricht sendet, einschließlich einer PRINT-Anweisung.
<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>
Wenn die gespeicherte Prozedur ausgeführt wird, wird das InfoMessage-Ereignis ausgelöst und der Nachrichtenhandler aufgerufen. Auf den Nachrichtentext kann über die Message-Eigenschaft des SqlInfoMessageEventArgs-Objekts zugegriffen werden.
Das obige ist der detaillierte Inhalt vonWie kann ich die PRINT-Ausgabe gespeicherter T-SQL-Prozeduren in .NET erfassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!