2014-05-14 154 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

相關問題