2014-05-14 32 views
0

以下是我正在尝试实施的代码。如何显示我的登录用户的特定用户详细信息?

我想返回用户登录数据,当我运行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

您的选择参数可能从未设置。我建议您尝试将默认值设置为数据库中存在的值。如果这有所作为,您会知道该参数从未设置为默认值以外的任何值。

您可以通过使用一个controlparameter代替设置参数的值:

<SelectParameters> 
    <asp:ControlParameter ControlID="__Page" Name="UserName" PropertyName="LoggedInUser" Type="String" /> 
</SelectParameters> 

这将让从在代码隐藏称为与loggedInUser属性的用户名。

public string LoggedInUser 
{ 
    get 
    { 
    return "RJoness"; 
    } 
} 

或者你也可以直接从代码隐藏设置的参数:

SqlDataSource1.SelectParameters.Add("UserName", "RJoness"); 
+0

是啊,我意识到,我的参数是不对的,如果我设置默认值=“RJoness”然后我得到的是现有的用户数据,这是我想要的。我不知道该怎么做的是把我的登录用户通道的用户名作为我的参数。你知道怎么做吗? – Claire

+0

编辑添加从代码隐藏获取参数的示例 –

+0

我试图说我得到错误“无法找到ControlParameter'UserName'中的控件'cparam'”。我的代码隐藏是C#而不是VB吗? – Claire

相关问题