我需要调试一些涉及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
这是参数的名称,我需要这些值。
这可能吗?
答案 0 :(得分:2)
如果您处理Selecting
event of the SqlDataSourceControl
,Command
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'值及其所有元素。
效果很好。一旦我知道发生了什么,我就删除方法和事件调用。