写了一个留言提示

it2022-05-05  197

  写了一个留言提示功能,大家给看看,还有没有更好的实现办法或者是BUG

 

请看代码和注释

  第一页前台:

 

 

Code <script language="javascript" type="text/javascript">var xmlhttp;var d; timer=setInterval("ajax()",10000);function ajax() {           if(window.ActiveXObject)      {         xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");      }               xmlhttp.open('GET''Default2.aspx?id=3'true);       xmlhttp.onreadystatechange = callback;      xmlhttp.send(null);              }   function callback()   {    if(xmlhttp.readystate == 4)    {      if(xmlhttp.status == 200)       {          d=xmlhttp.responseText;             }    }   }          </script>    </head><body>    <form id="form1" runat="server">     <div>         <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDeleting="GridView1_RowDeleting">             <Columns>                 <asp:TemplateField HeaderText="ID">                     <ItemTemplate>                         <asp:Label ID="Label2" runat="server" Text='<%# Eval("id") %>'></asp:Label>                    </ItemTemplate>                </asp:TemplateField>                <asp:CommandField ShowDeleteButton="True" />            </Columns>        </asp:GridView>        <br />        <br />             <asp:Label ID="Label1" runat="server" Text="Label" BackColor="White" BorderColor="White"></asp:Label>    </div>

 

第一页后台

 

 

 

Code private static int Record;//用来记录数据的行数,同Session["nuber"]进行比较,以确定,数据库是不是多了一行新的数据    //private static int nume = 0;    protected void Page_Load(object sender, EventArgs e)    {        NewMethod();        int Number = Convert.ToInt32(Session["nuber"]);//得到数据库数据行数        if (Session["nuber"!= null)//判断Session是不是为空        {            if (Number != Record)//判断是不是和记录(Record)相等,Record请看下边的解释            {                //ii = Convert.ToInt32(Session["nuber"]);                if (Number < Record)//判断是不是小于Record,如果小于则从新给他赋值,用来确定是不是删除过数据(可以不要)                {                    Record = Number;                                    }                else                {                    if (Number > Record)//判断是不是大于Record,如果大于就等于数据库中多了一条新的消息                        if (Record > 0)//判断Record是不是等于0,因为刚开运行页面时Record是为0的                        {                            int row = Number - Record;//获得多出了几条信息                            Record = Number;                            Label1.Text = "您有新的消息!!("+row+")";                            Label1.ForeColor = System.Drawing.Color.Blue;                        }                        else      //如果不等于Record就重新赋值                        {                            Record = Number;                        }                }            }        }           }    private void NewMethod()    {        string id = "3";        OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OleDb.4.0;Data Source=E:\shujuku\duan.mdb");        cn.Open();        OleDbCommand cm = new OleDbCommand("select  id from duanxin where username='" + id + "'", cn);        OleDbDataAdapter ca = new OleDbDataAdapter();        ca.SelectCommand = cm;        DataSet ds = new DataSet();        ca.Fill(ds);        ca.SelectCommand.ExecuteReader();        int i = Convert.ToInt32(ds.Tables[0].Rows.Count);        cn.Close();        GridView1.DataSource = ds;        GridView1.DataBind();    }         protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)    {        Label LbGV = (Label)GridView1.Rows[e.RowIndex].Cells[0].FindControl("Label2");        int GVid =Convert.ToInt32( LbGV.Text);        OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OleDb.4.0;Data Source=E:\shujuku\duan.mdb");        cn.Open();        OleDbCommand cm = new OleDbCommand(" delete from duanxin where id=" + GVid, cn);        //OleDbDataAdapter ca = new OleDbDataAdapter();        //ca.SelectCommand = cm;        //DataSet ds = new DataSet();                int i =cm.ExecuteNonQuery();     //得到被删除数据的行数        //ca.Fill(ds);        //ca.SelectCommand.ExecuteReader();        Record -= i;//Record减去被删除数据的行数,用来确定记录数,防止当用户删除数据时,正好有人发来新的消息。    }}

 

第二页后台(用来查出数据库记录)

 

 

Code protected void Page_Load(object sender, EventArgs e)    {        string id = Request.QueryString["id"].ToString();        OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OleDb.4.0;Data Source=E:\shujuku\duan.mdb");        cn.Open();        OleDbCommand cm = new OleDbCommand("select  id from duanxin where username='" + id + "'", cn);        OleDbDataAdapter ca = new OleDbDataAdapter();        ca.SelectCommand = cm;        DataSet ds = new DataSet();        ca.Fill(ds);        ca.SelectCommand.ExecuteReader();        int i = Convert.ToInt32(ds.Tables[0].Rows.Count);        ss(i);        Response.Write(i);    }    public void ss( int i)    {        Session["nuber"= i;//记录检索出来的行数有多少,用以分别是不是有人发了新的消息        //Session["nuber2"]=            } 

 

转载于:https://www.cnblogs.com/tanxiao/archive/2008/08/13/1266918.html


最新回复(0)