基于用户筛选SqlDataSource
本文关键字:筛选 SqlDataSource 用户 于用户 | 更新日期: 2023-09-27 18:28:30
我正在从数据库中检索数据,这很容易通过将查询分配给SelectCommand来完成。然而,我想根据登录的用户类型显示某些记录;C#。
<asp:SqlDataSource ID="SqlDataSourceInbox" runat="server"
ConnectionString="<%$ ConnectionStrings:DBConnectionString %>"
ProviderName="<%$ ConnectionStrings:DBConnectionString.ProviderName %>"
SelectCommand="SELECT MESSAGE_ID, FACILITY_ID, TYPE, DEPARTMENT, STATUS, REMARKS
FROM INBOX ORDER BY DATE_RECIEVED"
</asp:SqlDataSource>
我试图通过它的ID访问属性来使用代码隐藏,但这似乎不起作用。有什么想法吗?还是在没有代码的情况下处理它更好?
如果您使用的是Sql Server和SqlClient Provider,您可以按照如下方式构造查询:
<asp:SqlDataSource ID="SqlDataSourceInbox"
SelectCommand="SELECT MESSAGE_ID, FACILITY_ID, TYPE, DEPARTMENT, STATUS, REMARKS
FROM INBOX ORDER BY DATE_RECIEVED
WHERE USER_NAME=@UserName"
runat="server">
</asp:SqlDataSource>
请注意,我正在添加一个WHERE子句,该子句通过假设字段"USER_NAME"(或您想要的其他字段)和参数@UserName进行筛选。
因此,在后面的代码中,您可以获得记录的用户名,并添加具有其值的select参数:
protected void Page_Load(object sender, EventArgs e)
{
string user = User.Identity.Name;
SqlDataSourceInbox.SelectParameters.Clear();
SqlDataSourceInbox.SelectParameters.Add("@UserName", user);
}
我希望它能有所帮助。