如何获取SqlDataSource SelectParameters的值?

时间:2013-06-11 19:07:39

标签: asp.net sqldatasource

我需要调试一些涉及SqlDataSource SelectParameters的代码,我想得到这些参数的值,但到目前为止我只能得到参数的名称。

Dim debug As String = "Parameter 1: " & SqlDataSource1.SelectParameters.Item(0).ToString() & "<br />" & _
        "Parameter 2: " & SqlDataSource1.SelectParameters.Item(1).ToString() & "<br />" & _
        "Parameter 3: " & SqlDataSource1.SelectParameters.Item(2).ToString() & "<br />" & _
        "Parameter 4: " & SqlDataSource1.SelectParameters.Item(3).ToString() & "<br />" & _
        "Parameter 5: " & SqlDataSource1.SelectParameters.Item(4).ToString() & "<br />" & _
        "Parameter 6: " & SqlDataSource1.SelectParameters.Item(5).ToString() & "<br />" & _
        "Parameter 7: " & SqlDataSource1.SelectParameters.Item(6).ToString() & "<br />" & _
        "Parameter 8: " & SqlDataSource1.SelectParameters.Item(7).ToString() & "<br />" & _
        "Parameter 9: " & SqlDataSource1.SelectParameters.Item(8).ToString() & "<br />"

    Label3.Text = debug

输出:

Parameter 1: institution
Parameter 2: type
Parameter 3: skoleaar
Parameter 4: termin
Parameter 5: fag
Parameter 6: niveau
Parameter 7: tid
Parameter 8: fritekst
Parameter 9: orderby

这是参数的名称,我需要这些值。

这可能吗?

2 个答案:

答案 0 :(得分:2)

如果您处理Selecting event of the SqlDataSourceControlCommand property参数的SqlDataSourceEventArgs将为您提供即将执行的DbCommand。从那里,您可以使用Parameters property来检查传递给命令的参数。

答案 1 :(得分:1)

我使用“存根”或调试方法,作为来自的事件调用的一部分 asp:SqlDataSource代码:

<asp:SqlDataSource ID="dsProgram" runat="server" ConnectionString="<%$ ConnectionStrings:ATCNTV1ConnectionString %>" CancelSelectOnNullParameter="false"
    SelectCommand="<<<my select command for example>>" OnSelecting="dsProgram_Selecting">

代码背后:

protected void dsProgram_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
    foreach (SqlParameter P in e.Command.Parameters)
    {
        //for debugging only
    }   
}

然后我调试代码并观察'P'值及其所有元素。

效果很好。一旦我知道发生了什么,我就删除方法和事件调用。