我正在开发一个用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");
}
我真的坚持这个,所以任何帮助都会非常感激。提前致谢
答案 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()));