Pertanyaan Capture Stored Procedure mencetak keluaran dalam .NET


Apakah mungkin untuk menangkap hasil cetak dari prosedur TSQL yang tersimpan di .NET?

Saya memiliki banyak Prokasi lawas yang menggunakan cetakan sebagai alat errorMessaging. Contohnya, apakah mungkin untuk mengakses 'kata' outprint dari mengikuti PROC?

-- The PROC
CREATE PROC usp_PrintWord AS
    PRINT 'word'

// Some C# Code to would like to pull out 'word'
SqlCommand cmd = new SqlCommand("usp_printWord", TheConnection);
cmd.CommandType = CommandType.StoredProcedure;
// string ProcPrint = ???

76
2017-12-10 11:51


asal


Jawaban:


Anda dapat melakukan ini dengan menambahkan event handler ke InfoMessage acara pada koneksi.

myConnection.InfoMessage += new SqlInfoMessageEventHandler(myConnection_InfoMessage);

void myConnection_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
    myStringBuilderDefinedAsClassVariable.AppendLine(e.Message);
}

118
2017-12-10 11:58



Ini sangat berguna jika Anda ingin menangkap hasil cetak di konsol output LinqPad:

SqlConnection conn = new SqlConnection(ConnectionString);
//anonymous function to dump print statements to output console
conn.InfoMessage += (object obj, SqlInfoMessageEventArgs e)=>{
                e.Message.Dump();
            };

6
2018-05-13 23:05