我正在从我的数据库中检索数据,这可以通过将查询分配给SelectCommand来轻松完成。但是我希望根据登录用户的类型显示某些记录。我正在使用ASP.Net& 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访问属性来使用代码隐藏,但这似乎不起作用。有任何想法吗?或者在没有代码隐藏的情况下处理它会更好吗?
答案 0 :(得分:0)
如果您使用的是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);
}
我希望它有所帮助。