0

在我的 ASP.net 应用程序中,我有一个SqlDataSourcewith 参数,例如:

<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 回答