如何显示登录用户的特定用户详细信息?

时间:2014-05-14 19:37:21

标签: c# asp.net

以下是我尝试实施的代码。

我想返回已登录用户的数据,当我使用此listview运行datasourceWHERE 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>

1 个答案:

答案 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");