如何根据登录的用户显示收件箱邮件?

时间:2014-08-13 12:47:31

标签: c# asp.net

我正在开发一个用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函数的数据中检索消息。

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");
}

我真的坚持这个,所以任何帮助都会非常感激。提前致谢

1 个答案:

答案 0 :(得分:0)

在消息表中添加用户信息

 create table Messages (User varchar(30),Message2 Varchar(100),
        SentDate Varchar(100));

要检索每个用户的信息,请通过包含where子句来修改SQL查询。

  using (SqlCommand cmd = new SqlCommand("SELECT Message2,SentDate FROM 
        Messages where User="+user.toString()));