SqlDataSource - 带有会话变量过滤器的 SelectCommand
SqlDataSource - SelectCommand with session variable filter
ASP.NET 2.0 框架
我试图在用户访问页面时列出所有与用户相关的条目。我在会话中为访问者设置了一个会话变量。现在我想用那个 ID 查询数据库。它似乎正在执行,但没有返回任何结果(我在单独的代码部分中显示内容)。
请帮忙!
<asp:SqlDataSource
ID="UserReports"
runat="server"
ConnectionString= "<%$ ConnectionStrings:MyConnectionString %>"
SelectCommand = "SELECT [ID], [ReportName], [ReportPath] FROM [Pan].
[dbo].[Reports] WHERE ([VisitorID] = @VisitorID)"
OnSelecting = "SqldsExample_Selecting">
<SelectParameters>
<asp:Parameter Name="VisitorID" Type="String"/>
</SelectParameters>
</asp:SqlDataSource>
On the code behind:
Sub SqldsExample_Selecting(sender As Object, e As
SqlDataSourceSelectingEventArgs)
UserReports.SelectParameters.Add("@VisitorID", Session("VisitorID"))
End Sub
不要使用 <asp:Parameter>
。您应该使用 <asp:SessionParameter>
直接访问会话变量:
<SelectParameters>
<asp:SessionParameter Name="VisitorID" SessionField="VisitorID" />
</SelectParameters>
ASP.NET 2.0 框架
我试图在用户访问页面时列出所有与用户相关的条目。我在会话中为访问者设置了一个会话变量。现在我想用那个 ID 查询数据库。它似乎正在执行,但没有返回任何结果(我在单独的代码部分中显示内容)。
请帮忙!
<asp:SqlDataSource
ID="UserReports"
runat="server"
ConnectionString= "<%$ ConnectionStrings:MyConnectionString %>"
SelectCommand = "SELECT [ID], [ReportName], [ReportPath] FROM [Pan].
[dbo].[Reports] WHERE ([VisitorID] = @VisitorID)"
OnSelecting = "SqldsExample_Selecting">
<SelectParameters>
<asp:Parameter Name="VisitorID" Type="String"/>
</SelectParameters>
</asp:SqlDataSource>
On the code behind:
Sub SqldsExample_Selecting(sender As Object, e As
SqlDataSourceSelectingEventArgs)
UserReports.SelectParameters.Add("@VisitorID", Session("VisitorID"))
End Sub
不要使用 <asp:Parameter>
。您应该使用 <asp:SessionParameter>
直接访问会话变量:
<SelectParameters>
<asp:SessionParameter Name="VisitorID" SessionField="VisitorID" />
</SelectParameters>