以下是我尝试实施的代码。
我想返回已登录用户的数据,当我使用此listview
运行datasource
而WHERE UserName = @UserName
时,我会获得完整的用户列表。
但是,我只想返回登录用户。使用WHERE UserName = @UserName
和我的选择参数集我返回空数据 - 如何更改SELECT
语句以选择我登录用户的数据?
<asp:sqldatasource
id="SqlDataSource1"
runat="server"
connectionstring="<%$ ConnectionStrings:SecondConnectionString %>"
selectcommand="SELECT vw_aspnet_MembershipUsers.UserId, vw_aspnet_MembershipUsers.Email, vw_aspnet_MembershipUsers.CreateDate, vw_aspnet_MembershipUsers.LastLoginDate, vw_aspnet_MembershipUsers.UserName, vw_aspnet_MembershipUsers.LastActivityDate
WHERE UserName = @UserName">
<SelectParameters>
<asp:Parameter name="UserName" type="String" DefaultValue="LoggedInUser" />
</SelectParameters>
</asp:sqldatasource>
答案 0 :(得分:0)
您的select参数可能永远不会设置。我建议您尝试将默认值设置为数据库中存在的值。如果这有所不同,您将知道该参数永远不会设置为默认值以外的任何值。
您可以使用控制参数来设置参数的值:
<SelectParameters>
<asp:ControlParameter ControlID="__Page" Name="UserName" PropertyName="LoggedInUser" Type="String" />
</SelectParameters>
这将从代码隐藏中名为LoggedInUser的属性中获取用户名。
public string LoggedInUser
{
get
{
return "RJoness";
}
}
或者您可以直接从codebehind设置参数:
SqlDataSource1.SelectParameters.Add("UserName", "RJoness");