gpt4 book ai didi

c# - 从 C# 启动 sqlcmd 时如何检索错误?

转载 作者:行者123 更新时间:2023-11-30 22:51:14 26 4
gpt4 key购买 nike

我需要从 C# 应用程序运行存储过程。

我使用下面的代码来做到这一点:

Process sqlcmdCall = new Process();
sqlcmdCall.StartInfo.FileName = "sqlcmd.exe";
sqlcmdCall.StartInfo.Arguments = "-S localhost\\SQLEXPRESS -d some_db -Q \":EXIT(sp_test)\""
sqlcmdCall.Start();
sqlcmdCall.WaitForExit();

调用完成后,从 sqlcmdCall 对象中,我目前获得的 ExitCode 为 -100 表示成功,1 表示失败(即缺少参数、存储过程不存在等...)。

如何自定义这些返回码?

H.

最佳答案

我有一个小型 VB.Net 应用程序可以执行类似的系统命令。为了捕获错误或成功条件,我定义了正则表达式以匹配命令的错误文本输出,并像这样捕获输出:

        myprocess.Start()
procReader = myprocess.StandardOutput()

While (Not procReader.EndOfStream)
procLine = procReader.ReadLine()

If (MatchesRegEx(errRegEx, procLine)) Then
writeDebug("Error reg ex: [" + errorRegEx + "] has matched: [" + procLine + "] setting hasError to true.")

Me.hasError = True
End If

writeLog(procLine)
End While

procReader.Close()

myprocess.WaitForExit(CInt(waitTime))

这样我就可以捕获特定错误并记录命令的所有输出,以防遇到意外错误。

关于c# - 从 C# 启动 sqlcmd 时如何检索错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com