0

(アプリから)sqlcmdを使用してSQLサーバーのバージョンをクエリしていて、情報をリッチテキストボックスに表示したいのですが、どうすればよいですか?コードは次のとおりです。

        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();
4

2 に答える 2

2

SQL スクリプトを実行する必要があるため、別のプロセスを開始する代わりに、SqlConnection と SqlCommand を使用して出力を取得できます。

いくつかの例については、この回答とこの質問の他の回答を確認してください: https://stackoverflow.com/a/949933/559144

于 2012-05-07T10:30:51.380 に答える
0

SqlConnection使用したくないと思いますSqlCommand...よくわかりません
が、出力を取得する前にプロセスが終了する可能性があります。
これを試して:

proc.Start();    
string s = proc.StandardOutput.ReadToEnd();
于 2012-05-07T10:36:48.530 に答える