我尝试使用osql登录。 我知道从cmd运行时会抛出异常 但是在下面的代码中我没有发现异常。我怎样才能发现异常?
p.StartInfo.FileName = "osql.exe";
p.StartInfo.Arguments = "-S serverName -U userName -P \"psw\" -d db";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
try
{
p.Start();
// should not get here
}
catch(Exception ex)
{
// should get here
}
答案 0 :(得分:1)
如果在osql.exe上登录失败,System.Diagnostic.Process'p'不会引发异常。也许osql.exe的结果将返回一个win32-err代码...你无法通过使用try catch块来处理应用程序中另一个进程的loginexception
修改强>
您可以通过P.ExitCode接收ExitCode。考虑使用WaitForExit()方法等待osql.exe进程退出。
<top frame>
在我的机器上,结果总是0或1 - 我不认为你会得到一个loginerror的确切错误代码。只是失败或成功的信息。