2010-05-12 61 views
1

我有一個很大的審計存儲過程,它打印值並運行一些SELECT語句。在SQL Management Studio中運行時,我們使用select來顯示「結果到文本」,以便所有SQL結果和打印語句顯示在一個位置。如何將SQL輸出記錄到客戶端上的文本文件C#

現在我需要在過程結束時調用此審計過程,並基本上將所有將「結果到文本」窗口中的數據存儲到.txt文件中。

這怎麼辦?

回答

2

您可以獲得PRINT輸出,但不會以與獲取結果集相同的方式。如果你的輸出假定了一個特定的PRINT和結果集數據序列,這是不可能的。

您可以通過回調/事件處理程序得到打印輸出:

SqlConnection c ... 
c.InfoMessage += new SqlInfoMessageEventHandler(cb_Msg); 

...

void cb_Msg(object sender, SqlInfoMessageEventArgs e) 
{ 
    // e.Message has a line of PRINT output 
} 

當你執行一些針對SqlConnection的,它會調用回調的每一行打印輸出。

1

您最好將輸出參數添加到sp並將文本輸出放入。然後,當您在代碼中調用sp時,您可以單獨獲取結果集和文本,並且可以根據需要顯示它們。

相關問題