Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将SQL输出从C记录到客户端上的文本文件#_C#_Sql Server - Fatal编程技术网

C# 如何将SQL输出从C记录到客户端上的文本文件#

C# 如何将SQL输出从C记录到客户端上的文本文件#,c#,sql-server,C#,Sql Server,我有一个大型审计存储过程,它打印值并运行一些SELECT语句。在SQLManagementStudio中运行时,我们可以使用select显示“结果到文本”,这样所有SQL结果和print语句都显示在一个位置 现在我需要一些C#代码,在过程结束时也调用这个审计过程,基本上将“结果到文本”窗口中的所有数据存储到一个.txt文件中 如何做到这一点?您最好向sp添加一个输出参数,并将文本输出放在其中。然后,当您在代码中调用sp时,您将分别获得结果集和文本,并且您可以根据需要显示它们 您可以获得打印输出,

我有一个大型审计存储过程,它打印值并运行一些SELECT语句。在SQLManagementStudio中运行时,我们可以使用select显示“结果到文本”,这样所有SQL结果和print语句都显示在一个位置

现在我需要一些C#代码,在过程结束时也调用这个审计过程,基本上将“结果到文本”窗口中的所有数据存储到一个.txt文件中


如何做到这一点?

您最好向sp添加一个输出参数,并将文本输出放在其中。然后,当您在代码中调用sp时,您将分别获得结果集和文本,并且您可以根据需要显示它们

您可以获得打印输出,但与获得结果集的方式不同。如果您的输出采用特定的打印和结果集数据序列,那么这实际上是不可能的


您可以通过回调/事件处理程序获得打印输出:

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

当您针对该SqlConnection执行某些操作时,它将为每行打印输出调用该回调

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