我的SqlDataSource SelectCommand在我的.aspx页面上。
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:MyConnectionString %>"
SelectCommand="SELECT * FROM [UserResult]"
OnSelecting="SqlDataSource1_Selecting">
</asp:SqlDataSource>此语句将使表UserResult中的数据列表成为grep。
但是,我只想列出属于用户的特定结果。
我在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" />发布于 2011-12-01 13:37:11
您的语句正在寻找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网页中的应用
发布于 2012-02-17 17:52:47
没有必要在.aspx文件中声明默认值。只能添加到文件后面的代码中。
protected void Page_Init(object sender, EventArgs e)
{
SqlDataSource1.InsertParameters["UserName"].DefaultValue = User.Identity.Name;
}https://stackoverflow.com/questions/8342189
复制相似问题