使用代码块选择user . identity . name
本文关键字:user identity name 选择 代码 | 更新日期: 2023-09-27 18:16:26
我在我的。aspx页面上有一个SqlDataSource SelectCommand .
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:MyConnectionString %>"
SelectCommand="SELECT * FROM [UserResult]"
OnSelecting="SqlDataSource1_Selecting">
</asp:SqlDataSource>
这个语句将从表UserResult
中获取一个数据列表。
但是我只想列出属于用户的特定结果。
我在UserResult
表中附加了一列,这是username
,我试图形成这样的sql语句,但它似乎搜索用户User.Identity.nAME
:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:SODConnectionString %>"
SelectCommand="SELECT * FROM [UserResult] WHERE [username] LIKE 'User.Identity.Name'";"
OnSelecting="SqlDataSource1_Selecting">
</asp:SqlDataSource>
我可以知道怎么做吗?
更新:
从Curt的解决方案,我已经尝试实现以下内容:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:SODConnectionString %>"
SelectCommand="SELECT * FROM [UserResult] WHERE [username]=@username"
OnSelecting="SqlDataSource1_Selecting">
<SelectParameters>
<asp:Parameter Name="username" Type="String" DefaultValue='<%=User.Identity.Name %>' />
</SelectParameters>
</asp:SqlDataSource>
但是我仍然不能根据用户名检索数据。
我试图硬编码一个用户名到username
参数,它工作:
有人能帮忙吗?
<asp:Parameter Name="username" Type="String" DefaultValue="james" />
您的语句正在查找User.Identity.Name
,因为它被设置为字符串。
尝试使用代码块:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:SODConnectionString %>"
SelectCommand="SELECT * FROM [UserResult] WHERE [username]=@username"
OnSelecting="SqlDataSource1_Selecting">
<SelectParameters>
<asp:Parameter Name="username" Type="String" DefaultValue='<%=User.Identity.Name %>' />
</SelectParameters>
</asp:SqlDataSource>
ASP中的嵌入式代码块. NET Web Pages
不需要在.aspx
文件中声明默认值。您只能添加到文件后面的代码。
protected void Page_Init(object sender, EventArgs e)
{
SqlDataSource1.InsertParameters["UserName"].DefaultValue = User.Identity.Name;
}