0

私のASP.netアプリケーションには、次のようなSqlDataSourceパラメーターがあります。

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="..." 
    onselecting="SqlDataSource1_Selecting" ProviderName="System.Data.SqlClient" 
    SelectCommand="SELECT * FROM [SomeTable] WHERE ([SomeTableID] = @SomeTableID)">
    <SelectParameters>
        <asp:ControlParameter ControlID="DropDownList1" Name="SomeTableID" 
            PropertyName="SelectedValue" Type="Int32" />
    </SelectParameters>
</asp:SqlDataSource>

デバッグの目的で、データベース サーバーで実行されるクエリ文字列、つまりパラメータ値が入力されたクエリ文字列を何らかの方法でキャッチすると非常に役立ちます。

SqlDataSource1_Selectingイベントでこれを実行しようとしましたが、SqlDataSourceSelectingEventArgs引数にはまだSelectCommand上記のテキストが含まれています: SELECT * FROM [SomeTable] WHERE ([SomeTableID] = @SomeTableID).

すべての @Valiables が選択に使用される値に置き換えられた真のクエリ文字列を取得するにはどうすればよいですか?

4

1 に答える 1

0

コードで表示する方法はありません。SqlCommand クラスは、クエリをパラメーターから分離する sp_execute を呼び出します。実行された正確なクエリを確認するには、Sql Profilerを使用する必要があります。

このを通じて SqlProfiler の使用方法を学ぶことができます。

于 2013-08-08T06:31:52.000 に答える