1

SqlCommand オブジェクトがあり、その ExecuteNonQuery メソッドを実行します。クエリは失敗しますが、クエリを取得してデバッグする方法がわかりません。私たちを手伝ってくれますか?

更新現在、コマンドを読み取るために Wireshark (tcpdump) を使用していますが、これは最善の解決策ではないと思います

更新CommandText プロパティは、ストアド プロシージャ名のみを提供します。パラメータを含むコマンド全体が必要です。

4

4 に答える 4

3

SQL プロファイラーを使用して、パラメーターと共に送信されるストアド プロシージャへのクエリ/呼び出しを確認できます。

于 2009-01-20T20:39:31.333 に答える
0

パラメータも確認したい場合は、コマンドオブジェクト(CommandTextだけでなく)のParametersプロパティを確認し、このコレクションの各パラメータを確認して、値とデータ型を抽出する必要があります。の。

さて、デバッグしようとしているのは、C#コードではなく、ストアドプロシージャ自体のようですが、そうですか?その場合は、Visual StudioデバッガーをSQLサーバーに接続して、T-SQLコードをデバッグする必要があります。Oracleでこれを実行できることはわかっているので、SQLサーバーですぐに実行できるはずだと思います。

于 2009-01-20T20:48:30.237 に答える
0

とにかくSQLの周りでtry/catchブロックを使用する必要がありますが、これを行うことの利点は、エラーとともにSQLコマンド文字列を簡単に返すことができることです。

このような何かがそれを行う必要があります:

try
{
    ***Execute your SQL query here***
}
catch (Exception e)
{
    Console.WriteLine(e.ToString());
    Console.WriteLine(***My SQL command string***);

}
于 2009-01-20T21:38:46.453 に答える
0

SqlCommand の CommandText プロパティの値を取得できますか? 例外がスローされた場合は、それをキャッチし、CommandText プロパティにアクセスして、設定したように SQL コマンドを取得できます。もちろん、パラメーターが含まれている場合、パラメーターは適切な値に置き換えられません。

于 2009-01-20T20:39:52.813 に答える