如何根据登录的用户显示收件箱邮件
本文关键字:显示 收件箱 用户 何根 登录 | 更新日期: 2023-09-27 18:17:53
我正在做一个用ASP.NET开发的网站。其中一个页面需要显示存储在数据库中的消息。目前,我可以使用<asp:Gridview>
检索这些消息并在页面上显示它们,而不会出现问题。我的问题是每条消息都显示给所有用户。例如,
用户1可以看到"bla bla"
用户2可以看到"bla bla"
我想以某种方式管理显示基于哪个用户登录的每个消息。例如,
用户1只能看到ABC
用户2只能看到DEF
下面的代码用于收件箱页面。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Message2" HeaderText="Message" HeaderStyle-Width="150" />
<asp:BoundField DataField="SentDate" HeaderText="Sent Date" HeaderStyle-Width="150" />
</Columns>
</asp:GridView>
我在Page_Load
函数处从Data检索消息。
protected void Page_Load(object sender, EventArgs e)
{
if (User.Identity.IsAuthenticated == true)
{
using (SqlConnection conn = new SqlConnection(Common.ConnectionString))
{
using (SqlCommand cmd = new SqlCommand("SELECT Message2,SentDate FROM Messages"))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = conn;
sda.SelectCommand = cmd;
DataTable dt = new DataTable();
sda.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
reader.Close();
conn.Close();
}
}
}
this.GridView1.Attributes.Add("bordercolor", "#e9e9e9");
}
我真的被困在这个问题上,所以任何帮助都会非常感激。提前感谢
在Message Table中添加用户信息
create table Messages (User varchar(30),Message2 Varchar(100),
SentDate Varchar(100));
为了检索每个用户的信息,修改SQL查询,包括where子句。
using (SqlCommand cmd = new SqlCommand("SELECT Message2,SentDate FROM
Messages where User="+user.toString()));