如何使用当前用户的 Id 作为 asp 页面中查询的参数?
我使用 MySQL 作为成员资格和角色的提供者,因此应该能够访问当前用户的用户 ID。
我想做这样的事情,但我收到错误“System.Web.Profile.DefaultProfile”不包含名为“Id”的属性
- 如果不是Id,那会是什么?
在我的查询中链接到 @Id 的是 Name 还是 PropertyName?
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnectionString %>" ProviderName="<%$ ConnectionStrings:DefaultConnectionString.ProviderName %>" SelectCommand="SELECT Date, Distance, LongestActive, ActiveTime, Km, StepCount, SiteUserId FROM UpMoves WHERE SiteUserId = @Id AND Date BETWEEN '2013-10-01' AND '2013-10-31' ORDER BY DATE ASC"> <SelectParameters> <asp:ProfileParameter Name="Id" PropertyName="Id" Type="Int32" /> </SelectParameters>
在 codingstills 评论和链接之后,我现在在 Page_Load 中有以下代码
System.Web.Security.MembershipUser user = System.Web.Security.Membership.GetUser();
System.Web.Profile.ProfileBase profile = System.Web.Profile.ProfileBase.Create(user.UserName);
profile.SetPropertyValue("SiteUserId", user.ProviderUserKey);
profile.Save();
并添加到我的网络配置中
<properties>
<add name ="SiteUserId" type="Int32"/>
</properties>
现在这有效
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnectionString %>" ProviderName="<%$ ConnectionStrings:DefaultConnectionString.ProviderName %>"
SelectCommand="SELECT Date, Distance, LongestActive, ActiveTime, Km, StepCount, SiteUserId FROM UpMoves WHERE SiteUserId = @SiteUserId AND Date BETWEEN '2013-10-01' AND '2013-10-31' ORDER BY DATE ASC">
<SelectParameters>
<asp:ProfileParameter Name="SiteUserId" PropertyName="SiteUserId" Type="Int32" />
</SelectParameters>
但我不禁想到必须有一种更简单的方法——但也许不是。