我正在使用sqlcmd(来自我的应用程序)查询sql server的版本,并希望在富文本框中显示信息,我该怎么做,这是代码:
Process proc = new Process();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.FileName = "sqlcmd";
proc.StartInfo.Arguments = @"-U sa -P somepassword -q 'SELECT @@VERSION' -S (localhost)\InstanceName";
proc.Start();
StringBuilder q = new StringBuilder();
while (!proc.HasExited)
{
q.Append(proc.StandardOutput.ReadToEnd());
}
string r = q.ToString();
rtbCheckVersion.Text = r;
proc.WaitForExit();
答案 0 :(得分:2)
因为您必须执行sql脚本,所以可以使用SqlConnection和SqlCommand来获取输出,而不是启动一个单独的进程。
在此问题中查看此答案和其他答案以获取一些示例:https://stackoverflow.com/a/949933/559144
答案 1 :(得分:0)
我发现您不想使用SqlConnection
和SqlCommand
...
我不确定,但可能是你的流程在输出之前退出
试试这个:
proc.Start();
string s = proc.StandardOutput.ReadToEnd();