1

我需要调试一些涉及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

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

这可能吗?

4

2 回答 2

2

如果您处理 的Selecting事件,SqlDataSourceControl则参数的Command属性SqlDataSourceEventArgs将为您提供DbCommand即将执行的事件。从那里,您可以使用该Parameters属性来检查传递给命令的参数。

于 2013-06-11T19:16:28.423 回答
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”值及其所有元素。

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

于 2016-04-22T05:09:21.867 回答