C# 使用输出选项从sqlcmd.exe检索sql错误

C# 使用输出选项从sqlcmd.exe检索sql错误,c#,stored-procedures,error-handling,sqlcommand,sqlcmd,C#,Stored Procedures,Error Handling,Sqlcommand,Sqlcmd,我在一个windows服务上有一个运行在C#中的进程,它执行sql命令。然后执行存储过程以填充csv文件。当前,如果此存储过程出错,它会将错误输出到csv文件,但我需要能够从我的C#代码中访问此错误并相应地处理它 public static void RunAndWaitForProgram(string executablePath, string arguments) { var startInfo = new ProcessStartInfo(executableP

我在一个windows服务上有一个运行在C#中的进程,它执行sql命令。然后执行存储过程以填充csv文件。当前,如果此存储过程出错,它会将错误输出到csv文件,但我需要能够从我的C#代码中访问此错误并相应地处理它

public static void RunAndWaitForProgram(string executablePath, string arguments)
    {
        var startInfo = new ProcessStartInfo(executablePath, arguments);

        var processToRun = new Process
        {
            StartInfo = startInfo
        };

        processToRun.Start();
        processToRun.WaitForExit();
    }
(其中executablePath是指向sqlcmd的路径,参数是我希望运行的命令)

我对sqlcmd是完全陌生的,由于传统的限制,这个实现是必需的

我已经研究过使用sqlcmd operation-r(见下文)但没有任何效果,我最后的办法是使用正则表达式扫描csv,以便在每次存储过程运行时发现任何错误。有什么我可以避免的吗

"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe" -S database\content -Q "EXEC sproc @variable = '1'" -o "C:\folderpath\data.csv" -f 65001 -W -X -r1 -s"±" -v Variable="4"

为什么需要
sqlcmd
?为什么不直接使用
SqlCommand
类从C#代码本身执行sql命令呢?不幸的是,这是一个遗留问题,我们只能使用sqlcmd.exe,否则我希望按照建议的路线执行。